[8497] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

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

home help back first fref pref prev next nref lref last post