]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] fix timer interrupts on NUMA-Q
authorMartin J. Bligh <martin.bligh@us.ibm.com>
Sun, 14 Jul 2002 10:45:38 +0000 (03:45 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sun, 14 Jul 2002 10:45:38 +0000 (03:45 -0700)
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

arch/i386/kernel/io_apic.c

index 8ef86c3dfbf8b9897e7c5038dc0faba2c3e1206e..8ae4bb7bf9b2b9c7d4bcdbe86c40a975c6482ff8 100644 (file)
@@ -724,7 +724,14 @@ void __init setup_IO_APIC_irqs(void)
                }
 
                irq = pin_2_irq(idx, apic, pin);
-               add_pin_to_irq(irq, 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);
 
                if (!apic && !IO_APIC_IRQ(irq))
                        continue;