QUESTION: Network hangs with BP6 and 2.4.x kernels, hardware related?
Let's decode it:
Quoted 4 lines
IO APIC #2......
NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:
12 0FF 0F 0 1 0 1 0 1 1 91
13 0FF 0F 0 1 1 1 0 1 1 99
IRR for interrupt 19 is set, that means the IO APIC has sent the interrupt to a cpu but not yet received the corresponding EOI.
That bit is read only, so we can't set it to 0 to kick the io apic.
The Vector is 99, we must check that bit in the ISR, TMR and IRR of both cpus.
cpu1:
Quoted 3 lines
ISR: all bits 0
TMR: only bit0x99is set
IRR: all bits 0
cpu0:
Quoted 3 lines
ISR: all bits 0
TMR: only bit0x89is set
IRR: bit0xfcand bit0xefare set.
ISR is the in-server register, 0 means that the cpu is not processing an interrupt right now.
TMR is the trigger mode registers, 1 means that the local apic should send an EOI to the io apic when the cpu signals the EOI to the local apic.
IRR is the list of pending interrupts:0xef is the local timer interrupt,0xfc is the reschedule interrupt
(see include/asm-i386/hw_irq.h)
These bits are also read only.
If you search the IO APIC documentation: number 29056601 - just search with google. The local APIC is documented in the main cpu handbook (PPro or later), in the chapter about multiple processor management
--
Manfred
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
Quoted 2 lines · [email protected] said:
IRR for interrupt 19 is set, that means the IO APIC has sent the interrupt to a cpu but not yet received the corresponding EOI.
OK, but couldn't we reset it by sending an extra EOI when the drivers decide that they've missed interrupts?
--
dwmw2
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/