I was getting false reports about NMI lockups on CPU 3. For some reason
CPU 0,1 and 2 where using apic timer, and CPU 3 was using the irq 0
timer.
This patch makes the NMI watchdog count both the apic timer and the irq0
timer.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Index: linux-2.6-rt-test/arch/x86_64/kernel/nmi.c
===================================================================
--- linux-2.6-rt-test.orig/arch/x86_64/kernel/nmi.c
+++ linux-2.6-rt-test/arch/x86_64/kernel/nmi.c
@@ -938,7 +938,7 @@ int notrace __kprobes nmi_watchdog_tick(
touched = 1;
}
- sum = read_pda(apic_timer_irqs);
+ sum = read_pda(apic_timer_irqs) + kstat_cpu(cpu).irqs[0];
if (__get_cpu_var(nmi_touch)) {
__get_cpu_var(nmi_touch) = 0;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
CPU 0,1 and 2 where using apic timer, and CPU 3 was using the irq 0
timer.
This patch makes the NMI watchdog count both the apic timer and the irq0
timer.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Index: linux-2.6-rt-test/arch/x86_64/kernel/nmi.c
===================================================================
--- linux-2.6-rt-test.orig/arch/x86_64/kernel/nmi.c
+++ linux-2.6-rt-test/arch/x86_64/kernel/nmi.c
@@ -938,7 +938,7 @@ int notrace __kprobes nmi_watchdog_tick(
touched = 1;
}
- sum = read_pda(apic_timer_irqs);
+ sum = read_pda(apic_timer_irqs) + kstat_cpu(cpu).irqs[0];
if (__get_cpu_var(nmi_touch)) {
__get_cpu_var(nmi_touch) = 0;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/