Thanks to tglx and ghaskins for all the help in tracking down a very early nmi_watchdog crash on certain x86_64 machines.
This modifies nmi_watchdog_tick behavior for x86_64 arch to consider both timer and hpet IRQs just as the i386 arch does. Signed-off-by: David Bahi <[email protected]> --- 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 */
Attachment:
signature.asc
Description: PGP signature
- Prev by Date: [patch 3/3] Trace sample
- Next by Date: Re: [PATCH 3/3] CRED: Move the effective capabilities into the cred struct
- Previous by thread: [patch 3/3] Trace sample
- Next by thread: Proposed 2.6 Patch for AMD MIPS Alchemy au1550 I2C interface I2C interface
- Index(es):