linux/arch/x86_64/kernel
Jack F Vogel 67701ae976 [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>
2005-05-01 08:58:48 -07:00
..
acpi Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpufreq Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
aperture.c [PATCH] x86_64: Use the e820 hole to map the IOMMU/AGP aperture 2005-04-16 15:25:13 -07:00
apic.c [PATCH] Fix u32 vs. pm_message_t in x86-64 2005-04-16 15:25:31 -07:00
asm-offsets.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
e820.c [PATCH] x86_64: Port over e820 gap detection from i386 2005-04-16 15:25:12 -07:00
early_printk.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
entry.S [PATCH] x86_64: Remove unused macro in preempt support 2005-04-16 15:25:05 -07:00
genapic_cluster.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genapic_flat.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genapic.c [PATCH] x86_64 genapic update 2005-04-16 15:24:53 -07:00
head64.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
head.S [PATCH] x86_64: Dump stack and prevent recursion on early fault 2005-04-16 15:25:00 -07:00
i387.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
i8259.c [PATCH] Fix u32 vs. pm_message_t in x86-64 2005-04-16 15:25:31 -07:00
init_task.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
io_apic.c [PATCH] check nmi watchdog is broken 2005-05-01 08:58:48 -07:00
ioport.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kprobes.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ldt.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mce_intel.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mce.c [PATCH] x86_64: Remove excessive stack allocation in MCE code with large NR_CPUS 2005-04-16 15:25:10 -07:00
module.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mpparse.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
msr.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nmi.c [PATCH] check nmi watchdog is broken 2005-05-01 08:58:48 -07:00
pci-dma.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci-gart.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci-nommu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
process.c [PATCH] i386/x86_64 segment register access update 2005-05-01 08:58:48 -07:00
ptrace.c [PATCH] x86_64: Handle programs that set TF in user space using popf while single stepping 2005-04-16 15:24:58 -07:00
reboot.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
semaphore.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup64.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup.c [PATCH] x86, x86_64: dual core proc-cpuinfo and sibling-map fix 2005-04-16 15:25:20 -07:00
signal.c [PATCH] amd64 rt_sigframe user annotation 2005-04-26 07:43:42 -07:00
smp.c [PATCH] x86_64: Switch SMP bootup over to new CPU hotplug state machine 2005-04-16 15:25:19 -07:00
smpboot.c [PATCH] x86, x86_64: dual core proc-cpuinfo and sibling-map fix 2005-04-16 15:25:20 -07:00
suspend_asm.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
suspend.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sys_x86_64.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
syscall.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
time.c [PATCH] Fix u32 vs. pm_message_t in x86-64 2005-04-16 15:25:31 -07:00
trampoline.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
traps.c [PATCH] x86_64: Rewrite exception stack backtracing 2005-04-16 15:25:17 -07:00
vmlinux.lds.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vsyscall.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
x8664_ksyms.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00