[3561] in linux-scsi channel archive

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

SCSI deadlock

daemon@ATHENA.MIT.EDU (Jakub Jelinek)
Thu Mar 19 05:03:32 1998

From: Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
To: linux-kernel@vger.rutgers.edu, linux-scsi@vger.rutgers.edu
Date: 	Thu, 19 Mar 1998 11:03:56 +0100 (MET)

Hi!

We definitely need to get rid of all cli()/sti() stuff in at least block
devices. This is a need to do before 2.2 is out, otherwise it won't ever be
SMP stable. Today I found this while trying to make a 90G filesystem on my
SparcServer 1000e:

CPU0:							CPU2:
scsi_old_done->rw_intr->requeue_sd_request		...
do_sd_request()						add_request()
{							{
	spin_lock_irqsave(&io_req_lock,f);			cli();
	...							...
	scsi_allocate_device()					do_sd_request();
	{							{
		cli();							spin_lock_irqsave(&io_req_lock,f);
		...							...
	}							}
	...							...
}							}

Classical deadlock, what to say more. And it of course freezes the machine
hard, no IRQs, nothing.
Anyone has enough time to look at all cli/sti/restore_flags in at least 
generic scsi + generic block device layer? I won't be able to fix this in
the next two weeks at least.

Cheers,
    Jakub
___________________________________________________________________
Jakub Jelinek | jj@sunsite.mff.cuni.cz | http://sunsite.mff.cuni.cz
Administrator of SunSITE Czech Republic, MFF, Charles University
___________________________________________________________________
Ultralinux - first 64bit OS to take full power of the UltraSparc
Linux version 2.1.89 on a sparc64 machine (498.80 BogoMips).
___________________________________________________________________

-
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