RE: Kernel crash in 2.6.0-test9-mm3

From: Feldman, Scott <hidden>
Date: 2003-11-20 02:40:04

However, with things like IOAPIC and such, it might be 
possible for two cpus to enter e100intr() simultaneously, 
both read the same status, both see that the interrupt is 
pending, and both thus process the interrupt and race with each other.

Scott, what prevents the above from happening?
Whoa, this question is freaking me out just a little bit: my assumption
is that the device's interrupt line has been masked off at the CPU/PIC
before e100intr() is ever called, so 1) there really isn't any need to
disable device's interrupts from the driver (see eepro100.c), 2) or even
hold a lock unless we shared something critical on the queuing side (see
e1000), and 3) only one e100intr is running.  [public spanking in
order?]

I'm not sure what's behind the rest of the bug report, but if you're
saying e100intr() can be running simultaneously on two different CPUs,
then there is a problem because the test for device interrupt and the
acking of device interrupt are two steps that need to be protected with
a lock.

-scott
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help