[8497] in linux-scsi channel archive
Semaphore lock up in SMP environment
daemon@ATHENA.MIT.EDU (Venkatesh Ramamurthy)
Mon Mar 27 11:17:48 2000
Message-ID: <1355693A51C0D211B55A00105ACCFE64628783@ATL_MS1>
From: Venkatesh Ramamurthy <Venkateshr@ami.com>
To: linux-scsi@vger.rutgers.edu, linux-smp@vger.rutgers.edu,
linux-kernel@vger.rutgers.edu
Cc: 'David Grothe' <dave@gcom.com>
Date: Mon, 27 Mar 2000 11:05:01 -0500
MIME-Version: 1.0
Content-Type: text/plain
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-scsi" in
the body of a message to majordomo@vger.rutgers.edu