On Tue, 27 Jul 1999, Gerard Roudier wrote:
> My previous patch didn't reap completions that much. This one should do
> the work a lot better.
I've been runnig 2.2.10 on Ultra PCI successfully for 3 days but....
Today it has stopped working. instead of SIR Resets I've got:
Caller[0000000000415f40]
Caller[000000000040fa64]
Caller[000000000043b2fc]
Caller[000000000043f718]
Caller[0000000000416314]
Caller[0000000000415f40]
Caller[000000000040fa64]
Caller[000000000043b2fc]
Caller[000000000043f718]
Caller[0000000000416314]
Caller[0000000000415f40]
Caller[000000000040fa64]
Caller[000000000043b2fc]
Caller[000000000043f718]
Caller[0000000000416314]
Caller[0000000000415f40]
Caller[000000000040fa64]
......
Caller[233123313b7e2331]
Instruction DUMP: 22c2400d c071a358 d05a8000 <d0724000> d05a8000
02c20004 d
Aiee, killing interrupt handler
data_access_exception: Shit SFSR[000000000080100d] SFAR[00000069373a2030],
goin.
\|/ ____ \|/
"@'/ .. \`@"
/_| \__/ |_\
\__U_/
(1): Dax
TSTATE: 0000000080f09605 TPC: 0000000000466f60 TNPC: 0000000000466f64 Y:
0000000
g0: 0000000000000000 g1: 0000000000000020 g2: 0000000000000559 g3:
0000000000000
g4: fffff80000000000 g5: fffff80027dda1c0 g6: fffff800037b8000 g7:
0000000000540
o0: 3030303334396532 o1: 30312069373a2030 o2: 00000000005ccd37 o3:
00000000157c0
o4: fffff9fff1400000 o5: 00000000157c0000 sp: fffff8000349dd11 ret_pc:
00000000c
l0: 0000000000000000 l1: fffff800037b8350 l2: 000000000057a400 l3:
0000000000570
l4: 000000000057a400 l5: 000000000057a400 l6: 00000000005cd100 l7:
000000000000f
i0: 0000000000000001 i1: fffff800037b8140 i2: 000000000000000f i3:
0000000000001
i4: 00000000005ccd03 i5: 00000000005ccd23 i6: fffff8000349ddd1 i7:
0000000000438
Caller[000000000043f718]
Caller[0000000000416314]
Caller[0000000000415f40]
..............
I got the dump through the serial console so the machine was still running
:/ Does it help to trace the problem?
Thanks
Pau
> If you plan to start your Linux system using a sym53c8xx controller for an
> uptime of 1 year or more, the below patch may help. :-)
>
> If you refer to my previous mail about this topic, you probably will not
> expect this patch to fix anything that fails in less time than months or
> years, unless your system uses a fairly broken host-pci bridge.
>
> G�rard.
>
> --- linux/drivers/scsi/sym53c8xx_defs.h.1.3g Sun Jul 25 18:37:08 1999
> +++ linux/drivers/scsi/sym53c8xx_defs.h Mon Jul 26 23:52:25 1999
> @@ -268,7 +268,11 @@
> #define SCSI_NCR_CMD_PER_LUN (SCSI_NCR_MAX_TAGS)
> #define SCSI_NCR_SG_TABLESIZE (SCSI_NCR_MAX_SCATTER)
>
> +#if defined(SCSI_NCR_BROKEN_INTR) || defined(SCSI_NCR_REAP_COMPLETIONS)
> +#define SCSI_NCR_TIMER_INTERVAL ((HZ+9)/10)
> +#else
> #define SCSI_NCR_TIMER_INTERVAL (HZ)
> +#endif
>
> #if 1 /* defined CONFIG_SCSI_MULTI_LUN */
> #define SCSI_NCR_MAX_LUN (16)
> --- linux/drivers/scsi/sym53c8xx.h.1.3g Sun Jul 25 18:49:09 1999
> +++ linux/drivers/scsi/sym53c8xx.h Tue Jul 27 00:07:53 1999
> @@ -57,6 +57,14 @@
> #ifndef SYM53C8XX_H
> #define SYM53C8XX_H
>
> +/*
> +** We may have to reap completions on some architectures because
> +** of the host-pci bridge not following PCI ordering rules.
> +*/
> +#if !defined(__i386__) && !defined(__powerpc__) && !defined(__alpha__)
> +#define SCSI_NCR_REAP_COMPLETIONS
> +#endif
> +
> #include "sym53c8xx_defs.h"
>
> /*
> --- linux/drivers/scsi/sym53c8xx.c.1.3g Sun Jul 25 18:40:01 1999
> +++ linux/drivers/scsi/sym53c8xx.c Mon Jul 26 23:46:46 1999
> @@ -6881,6 +6881,10 @@
> np->lasttime = thistime;
> }
>
> +#ifdef SCSI_NCR_REAP_COMPLETIONS
> + ncr_wakeup_done(np);
> +#endif
> +
> #ifdef SCSI_NCR_BROKEN_INTR
> if (INB(nc_istat) & (INTF|SIP|DIP)) {
>
> @@ -7091,6 +7095,9 @@
> if (istat & INTF) {
> OUTB (nc_istat, (istat & SIGP) | INTF);
> if (DEBUG_FLAGS & DEBUG_TINY) printk ("F ");
> +#ifdef __alpha__
> + istat = INB (nc_istat);/* Dummy read to flush the write if PW */
> +#endif
> (void)ncr_wakeup_done (np);
> #ifdef SCSI_NCR_PROFILE_SUPPORT
> ++np->profile.num_fly;
> --- linux/drivers/scsi/ncr53c8xx.h.1.3g Sun Jul 25 18:55:09 1999
> +++ linux/drivers/scsi/ncr53c8xx.h Tue Jul 27 00:08:04 1999
> @@ -42,6 +42,14 @@
> #ifndef NCR53C8XX_H
> #define NCR53C8XX_H
>
> +/*
> +** We may have to reap completions on some architectures because
> +** of the host-pci bridge not following PCI ordering rules.
> +*/
> +#if !defined(__i386__) && !defined(__powerpc__)
> +#define SCSI_NCR_REAP_COMPLETIONS
> +#endif
> +
> #include "sym53c8xx_defs.h"
>
> /*
> --- linux/drivers/scsi/ncr53c8xx.c.1.3g Tue Jul 27 00:27:50 1999
> +++ linux/drivers/scsi/ncr53c8xx.c Mon Jul 26 23:47:34 1999
> @@ -6666,6 +6666,10 @@
> #endif
> }
>
> +#ifdef SCSI_NCR_REAP_COMPLETIONS
> + ncr_wakeup_done(np);
> +#endif
> +
> #ifdef SCSI_NCR_BROKEN_INTR
> if (INB(nc_istat) & (INTF|SIP|DIP)) {
>
>
>
> --------------------- END OF DIFFS ---------------------
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> Please read the FAQ at http://www.tux.org/lkml/
>
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]