Subject: Re: esp lossage - is this the same?
To: Martin Husemann <martin@duskware.de>
From: Andrey Petrov <petrov@netbsd.org>
List: port-sparc
Date: 09/13/2002 13:24:16
The test is very simple, just disable tagged queueing in your config
file. And what kernel is that? Regarding drives it's fast wide SCSI,
and my understanding is that anything electrically compatible (not 
differential or LVD) will work, thou it's not much sense to buy a drive
better then your adapter:-).


On Fri, Sep 13, 2002 at 10:05:30AM +0200, Martin Husemann wrote:
> Since there has been some esp-lossage talk recently, I'm pretty unsure what
> this effect is:
> 
> I have a U2, whith
> 
> esp0 at sbus0 slot 14 offset 0x8800000 vector 20 ipl 3: dma rev fas
> : FAS366/HME, 40MHz, SCSI ID 7
> scsibus0 at esp0: 8 targets, 8 luns per target
> scsibus0: waiting 2 seconds for devices to settle...
> sd0 at scsibus0 target 0 lun 0: <IBM, DNES30917SUN9.0G, SAD0> SCSI3 0/direct fixed
> sd0: 8637 MB, 4926 cyl, 27 head, 133 sec, 512 bytes/sect x 17689267 sectors
> esp0: wide mode 1
> sd0: sync (100.0ns offset 5), 16-bit (20.000MB/s) transfers, tagged queueing
> cd0 at scsibus0 target 6 lun 0: <TOSHIBA, XM-5401TASUN4XCD, 3485> SCSI2 5/cdrom removable
> cd0: sync (248.0ns offset 15), 8-bit (4.032MB/s) transfers
> 
> On heavy load the esp driver fails with an endless loop of:
> 
> esp0: invalid state: 6
> esp0: resetting SCSI bus
> esp0: SCSI bus reset
> esp0: invalid state: 6

Can you try this?

Index: ncr53c9x.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/ic/ncr53c9x.c,v
retrieving revision 1.96
diff -u -p -r1.96 ncr53c9x.c
--- ncr53c9x.c  2002/08/26 06:23:32     1.96
+++ ncr53c9x.c  2002/09/13 20:18:41
@@ -2648,8 +2648,7 @@ printf("<<RESELECT CONT'd>>");
                /* Don't panic: reset. */
                printf("%s: invalid state: %d\n",
                    sc->sc_dev.dv_xname, sc->sc_state);
-               ncr53c9x_scsi_reset(sc);
-               goto out;
+               goto reset;
        }
 
        /*