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-03-20 12:51:57.991051608 -0800 +++ 25-akpm/arch/i386/kernel/smpboot.c 2004-03-20 12:51:57.994051152 -0800 @@ -1112,6 +1112,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(); _