[PATCH] check nmi watchdog is broken
authorJack F Vogel <jfv@bluesong.net>
Sun, 1 May 2005 15:58:48 +0000 (08:58 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sun, 1 May 2005 15:58:48 +0000 (08:58 -0700)
commit67701ae9767534534d3710664037dfde2cc04935
tree6adb8d33585f8eee20794827c79e40991aeeaee5
parentfd51f666fa591294bd7462447512666e61c56ea0
[PATCH] check nmi watchdog is broken

A bug against an xSeries system showed up recently noting that the
check_nmi_watchdog() test was failing.

I have been investigating it and discovered in both i386 and x86_64 the
recent change to the routine to use the cpu_callin_map has uncovered a
problem.  Prior to that change, on an SMP box, the test was trivally
passing because all cpu's were found to not yet be online, but now with the
callin_map they are discovered, it goes on to test the counter and they
have not yet begun to increment, so it announces a CPU is stuck and bails
out.

On all the systems I have access to test, the announcement of failure is
also bougs...  by the time you can login and check /proc/interrupts, the
NMI count is happily incrementing on all CPUs.  Its just that the test is
being done too early.

I have tried moving the call to the test around a bit, and it was always
too early.  I finally hit on this proposed solution, it delays the routine
via a late_initcall(), seems like the right solution to me.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/apic.c
arch/i386/kernel/io_apic.c
arch/i386/kernel/nmi.c
arch/i386/kernel/smpboot.c
arch/x86_64/kernel/io_apic.c
arch/x86_64/kernel/nmi.c
include/asm-i386/apic.h
include/asm-x86_64/apic.h