scsi_request_queueable() with irqs enabled? (2.1.99-SMP)

Michael L. Galbraith (mikeg@weiden.de)
Sat, 2 May 1998 13:55:37 +0200 (MET DST)


Hi SMP folks,

I'm exploring a problem with fpu_memcpy causing int 13 in SMP mode
on my UP machine. I've replaced the fsave->fnsave and friends, but
the problem persists. I've checked for, but not found, any other
opcodes with fn variants. Also noticed that finit and fclex have
been changed to the fn versions everywhere in the kernel. IFF I've
covered all of these bases correctly, then the problem _might_ be a
genuine SMP problem. This is why I'm chasing it.. not because it
causes me any grief. (besides, it's also a bitch to follow :)

Now, what I notice is that the interrupt _only_ happens inside kswapd.
Looking at the following, it seems that scsi_request_queueable() is
being called with interrupts enabled. Is the comment concerning
scsi_request_queueable() only being safe when irqs are disabled still
correct? (scsi.c-944) Or, am I barking up the wrong tree?

[snip ~750000 lines]
c01ebdcf scsi_request_queueable +<13/27c> (1.47) cpu(0) pid(2)
c01ebdcf scsi_request_queueable +<13/27c> (1.47) cpu(0) pid(2)
c01ebdcf scsi_request_queueable +<13/27c> (1.47) cpu(0) pid(2)
c01ebdcf scsi_request_queueable +<13/27c> (1.47) cpu(0) pid(2)
c01ebdcf scsi_request_queueable +<13/27c> (1.47) cpu(0) pid(2)
c01ebdcf scsi_request_queueable +<13/27c> (1.47) cpu(0) pid(2)
c01ebdcf scsi_request_queueable +<13/27c> (1.47) cpu(0) pid(2)
c01ebdcf scsi_request_queueable +<13/27c> (1.47) cpu(0) pid(2)
c01ebdcf scsi_request_queueable +<13/27c> (4.90) cpu(0) pid(2)
c010d31a do_IRQ +<e/68> (3.50) cpu(0) pid(2)
c010cfc3 do_8259A_IRQ +<13/14c> (6.77) cpu(0) pid(2)
c010cec8 handle_IRQ_event +<10/64> (3.50) cpu(0) pid(2)
c010c9b9 math_error_irq +<d/2c> (6.10) cpu(0) pid(2)
c010d353 do_IRQ +<47/68> (1.10) cpu(0) pid(2)
c010d36d do_IRQ +<61/68> (1.57) cpu(0) pid(2)
c011831b __wake_up +<13/d8> (3.80) cpu(0) pid(2)
c011652e flush_signals +<e/6c> (3.23) cpu(0) pid(2)
c0118709 interruptible_sleep_on +<d/1c> (1.37) cpu(0) pid(2)
c011865a __sleep_on +<12/b4> (2.13) cpu(0) pid(2)
c0117f73 schedule +<13/3a8> (20.85) cpu(0) pid(2->354)

-Mike

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu