Commit 897575e3 authored by Martin J. Bligh's avatar Martin J. Bligh Committed by Linus Torvalds

[PATCH] fix timer interrupts on NUMA-Q

Since I turned on the IO-APICs on secondary quads, we are receiving
timer interrupts on *all* quads, not just the first quad, each from their
local timer chip. This causes time to progress far too rapidly ;-)

The simple patch below turns off the timer interrupts for IO-APICs other
than interrupt 0, and has been tested to fix the problem. As it switches
on clustered_apic_mode, it should be safe from hurting anyone else.

This fix is already in 2.4 - I'm playing catchup with 2.5 - the same patch
applies with just a line offset
parent d176d043
...@@ -724,6 +724,13 @@ void __init setup_IO_APIC_irqs(void) ...@@ -724,6 +724,13 @@ void __init setup_IO_APIC_irqs(void)
} }
irq = pin_2_irq(idx, apic, pin); irq = pin_2_irq(idx, apic, pin);
/*
* skip adding the timer int on secondary nodes, which causes
* a small but painful rift in the time-space continuum
*/
if (clustered_apic_mode && (apic != 0) && (irq == 0))
continue;
else
add_pin_to_irq(irq, apic, pin); add_pin_to_irq(irq, apic, pin);
if (!apic && !IO_APIC_IRQ(irq)) if (!apic && !IO_APIC_IRQ(irq))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment