From 897575e3e11274abd3eea923d564d29fefa97a61 Mon Sep 17 00:00:00 2001 From: "Martin J. Bligh" Date: Sun, 14 Jul 2002 03:45:38 -0700 Subject: [PATCH] [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 --- arch/i386/kernel/io_apic.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index 8ef86c3dfbf8..8ae4bb7bf9b2 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c @@ -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; -- 2.47.3