Messages in this thread | | | From | Jakub Jelinek <> | Subject | SCSI deadlock | 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-kernel" in the body of a message to majordomo@vger.rutgers.edu
| |