Messages in this thread Patch in this message | | | Date | Wed, 26 Sep 2007 12:45:17 -0600 | From | "David Bahi" <> | Subject | [PATCH 1/1] nmi_watchdog: x86_64 count timer and hpet like i386 |
| |
This modifies nmi_watchdog_tick behavior for x86_64 arch to consider both timer and pit/hpet IRQs just as the i386 arch does.
Without this fix a kernel crash occurs very early in the boot process if nmi_watchdog is on.
Signed-off-by: David Bahi <dbahi@novell.com>
--- arch/x86_64/kernel/nmi.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
Index: linux-2.6.22.8-rt9_1267/arch/x86_64/kernel/nmi.c =================================================================== --- linux-2.6.22.8-rt9_1267.orig/arch/x86_64/kernel/nmi.c +++ linux-2.6.22.8-rt9_1267/arch/x86_64/kernel/nmi.c @@ -369,8 +369,6 @@ int notrace __kprobes nmi_watchdog_tick( touched = 1; } - sum = read_pda(apic_timer_irqs); - if (__get_cpu_var(nmi_touch)) { __get_cpu_var(nmi_touch) = 0; touched = 1; @@ -386,6 +384,12 @@ int notrace __kprobes nmi_watchdog_tick( cpu_clear(cpu, backtrace_mask); } + /* + * Take the local apic timer and PIT/HPET into account. We don't + * know which one is active, when we have highres/dyntick on + */ + sum = read_pda(apic_timer_irqs) + kstat_cpu(cpu).irqs[0]; + #ifdef CONFIG_X86_MCE /* Could check oops_in_progress here too, but it's safer not too */
[unhandled content-type:application/pgp-signature] | |