FIXME's in scsi.c ???

Patrick Mau (patrick@oscar.prima.de)
Wed, 15 Apr 1998 23:38:24 +0200 (CEST)


Hi,

I still have trouble with the scsi mid-level code and the aic7xxx
driver 5.0.13 by Doug Ledford. I'm using kernel 2.1.95 right now, but
it also happened with 2.0.33. Tagged queuing is disabled for all
drives.
I don't believe it's a problem with the low-level code, but maybe
with the ordering of scsi-requests, but I don't know for sure.

As I said in previous postings, my box just freezes
with the drive LED constantly ON. I'm using the Adaptec 3940
twin-channe adaptor and the freeze only occurs when I access two
devices on the same bus simultaneously (sp?).

I stress tested the box with a spare partition on one drive and all
other devices unmounted and everything wenk Ok. I can even create very
large files with dd, scan directories recursively, and do wild
swapping without any problems.

I investigated the problem by using the SCSI LOGGING facility and
noticed that it always fails in "scsi_do_cmd" in scsi.c
There are to "FIXME!!!" comments near line 1440:

<CODE>
while (SCSI_BLOCK((Scsi_Device *) NULL, host)) {
spin_unlock(&io_request_lock); /* FIXME!!! */
SCSI_SLEEP(&host->host_wait, SCSI_BLOCK((Scsi_Device *) NULL, host));
spin_lock_irq(&io_request_lock); /* FIXME!!! */
}
</CODE>

I think there are some spinlock problems with parallel IO access.
What should I do with those FIXME lines ???

/Patrick

PS: Also it doesn't work with more than one drive, the new aic driver
results in a great performance boost. Really NICE work.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu