I am having a problem of disabled interrupts when i use down() in SMP
environment. I found out the following document in gcom.com web site
regarding the semaphore analysis by David Grothe.
This is what i found ....
"The semaphore algorithm was changed so that it buzzes a lock in the
SMP case of down() and always disables interrupts ".
now my exact problem ....
I am using semaphore in our SCSI/RAID driver (which is part of standard
linux
kernel) which uses down/up semaphore primitives.
I call up() in our ISR to release the semaphore flag . Since down() in SMP
disable interrupts , there is no way my ISR is fired which releases the
flag
and so freezes the system.
i have verified that ISR is not called .
Is there any other way to enable interrupts in down(). I know that it may
side-effects.
The non-SMP version of the driver works fine . even the SMP kernel with one
processor freezes.
TIA
Venkatesh
American Megatrends Inc.,
-
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/
This archive was generated by hypermail 2b29 : Fri Mar 31 2000 - 21:00:20 EST