more on AHA-2940UW vs. MSDOS file system

Randy Gobbel (gobbel@cogsci.ucsd.edu)
Tue, 17 Sep 1996 16:43:10 -0700


I went back through recent kernel patches and found all the aic7xxx changes in
2.0.13. Sure, enough, backing out those changes (2.0.20 -> 2.0.12) restores
the previous behavior. As in 2.0.20, I get a "queue full" message
*immediately* if I try to list an MS-DOS directory. However, in 2.0.12 the
SCSI reset commands work (activity light on the disk goes off), and after 15
or so resets, the transfer succeeds and everything seems normal. It's also
possible to ^C out of a "ls" command in 2.0.12 without ill effects, whereas in
2.0.20, once the "Queue full" message has been given out, all is lost, and
only the reset button can recover.

Here's the info from /var/log/messages in 2.0.12:

------------------------------------------------------------------------
Sep 17 16:14:48 gigan kernel: aic7xxx: Queue full.
Sep 17 16:15:03 gigan kernel: scsi : aborting command due to timeout : pid 2173, scsi0, channel 0, id 0, lun 0 Read (6) 00 05 47 01 00
Sep 17 16:15:03 gigan kernel: aic7xxx: (abort_reset) scb state 0x1, Data-In phase, SCSISIGI = 0x44
Sep 17 16:15:05 gigan kernel: SCSI host 0 abort (pid 2173) timed out - resetting
Sep 17 16:15:05 gigan kernel: SCSI bus is being reset for host 0 channel 0.
Sep 17 16:15:05 gigan kernel: aic7xxx: (abort_reset) scb state 0x7, Data-In phase, SCSISIGI = 0x54
Sep 17 16:15:05 gigan kernel: aic7xxx: Received MSG_WDTR, Target 0, channel A needwdtr(0xffff).
Sep 17 16:15:05 gigan kernel: aic7xxx: Target 0, channel A, using 16 bit transfers.
Sep 17 16:15:06 gigan kernel: aic7xxx: Target 0, channel A, now synchronous at 10.0MHz, offset(0x8).
Sep 17 16:15:08 gigan kernel: aic7xxx: Queue full.
Sep 17 16:15:23 gigan kernel: scsi : aborting command due to timeout : pid 2277, scsi0, channel 0, id 0, lun 0 Read (6) 00 07 08 01 00
Sep 17 16:15:23 gigan kernel: aic7xxx: (abort_reset) scb state 0x1, Data-In phase, SCSISIGI = 0x44
Sep 17 16:15:25 gigan kernel: SCSI host 0 abort (pid 2277) timed out - resetting
Sep 17 16:15:25 gigan kernel: SCSI bus is being reset for host 0 channel 0.
Sep 17 16:15:25 gigan kernel: aic7xxx: (abort_reset) scb state 0x7, Data-In phase, SCSISIGI = 0x54
Sep 17 16:15:25 gigan kernel: aic7xxx: Received MSG_WDTR, Target 0, channel A needwdtr(0xffff).
Sep 17 16:15:25 gigan kernel: aic7xxx: Target 0, channel A, using 16 bit transfers.
Sep 17 16:15:26 gigan kernel: aic7xxx: Target 0, channel A, now synchronous at 10.0MHz, offset(0x8).
Sep 17 16:15:28 gigan kernel: aic7xxx: Queue full.
<same sequence repeats 12 more times, with only "Read" data and pid varying>
------------------------------------------------------------------------

After looking through the relevant code, I'm suspicious of a) the weird
sector-packing that is required for MS-DOS, and b) comments about race
conditions in the SCSI subsystem-- I'm running on a 200 MHz Pentium Pro, so
perhaps processor speed is a factor (??). Also, my hard drive is a Quantum
Atlas, the same as the other person who reported similar problems.

-Randy

-- 
http://cogsci.ucsd.edu/~gobbel/

NOTICE: I DO NOT ACCEPT UNSOLICITED COMMERCIAL EMAIL MESSAGES OF ANY KIND. I CONSIDER SUCH MESSAGES PERSONAL HARRASSMENT AND A GROSS INVASION OF MY PRIVACY. By sending unsolicited commercial advertising/solicitations (or otherwise on or as part of a mailing list) to me via e-mail you will be indicating your consent to paying John R. (Randy) Gobbel $1,000.00 U.S.D./hour for a minimum of 1 hour for my time spent dealing with it. Payment due in 30 days upon receipt of an invoice (e-mail or regular mail) from me or my authorized representative.