Re: BusLogic + SMP == broke

Leonard N. Zubkoff (lnz@dandelion.com)
Thu, 9 Sep 1999 14:22:23 -0700


From: Brian Macy <bmacy@sunshinecomputing.com>
Date: Wed, 08 Sep 1999 22:35:52 -0700
Not so lucky... what happens nearly every time:
Do a preview scan (xsane, net SANE, or xscanimage)
Do a scan at 300dpi
Stops part way into the scan and the app doing the scanning locks
About 30seconds later the entire machine locks solid, no message, no
anything

>From looking at the driver, it isn't doing proper locking. The only
thing using spinlocks is the ISR itself... which is of little use since
the other side of the command queue'ing isn't locked. There are stubs
for non-ISR locks but the function are NOPs. If you do make the
functions call spinlocks the driver locks up on detection (my guess is
deadlocking on the spinlock). I'm not sure this is the real problem as
I'd expect kernel oops over poor resource contention.

Unless something has changed recently, the SCSI subsystem is already acquiring
the spinlock so the driver should not do so except in the interrupt handler.
The BusLogic driver was written so that if the SCSI mid layer ever stopped
doing locking or it was beneficial to have separare locks in the driver it
would be relatively easy.

Leonard

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/