From: Mikael Pettersson The real problem is that SMP with nmi_watchdog=2 initialises the lapic NMI watchdog but doesn't check it and therefore doesn't reduce nmi_hz. This is an SMP bug. The patch changes smpboot.c to do a check_nmi_watchdog() at the appropriate place, which fixes the high NMI frequency problem w/o changing anything else. I've verified that it solves the problem on my MP-capable UP box. --- 25-akpm/arch/i386/kernel/smpboot.c | 3 +++ 1 files changed, 3 insertions(+) diff -puN arch/i386/kernel/smpboot.c~nmi-1-hz-2 arch/i386/kernel/smpboot.c --- 25/arch/i386/kernel/smpboot.c~nmi-1-hz-2 2004-04-03 15:21:02.642882416 -0800 +++ 25-akpm/arch/i386/kernel/smpboot.c 2004-04-03 15:21:02.646881808 -0800 @@ -1114,6 +1114,9 @@ static void __init smp_boot_cpus(unsigne printk(KERN_WARNING "WARNING: %d siblings found for CPU%d, should be %d\n", siblings, cpu, smp_num_siblings); } + if (nmi_watchdog == NMI_LOCAL_APIC) + check_nmi_watchdog(); + smpboot_setup_io_apic(); setup_boot_APIC_clock(); _