>-----Original Message-----
>From: [email protected]
>[mailto:[email protected]] On Behalf Of
>Thomas Gleixner
>Sent: Thursday, November 09, 2006 3:39 PM
>To: Andrew Morton
>Cc: LKML; Ingo Molnar; Len Brown; John Stultz; Arjan van de
>Ven; Andi Kleen; Roman Zippel
>Subject: [patch 17/19] dynticks: Fix nmi watchdog
>
>From: Thomas Gleixner <[email protected]>
>
>The NMI watchdog implementation assumes that the local APIC timer
>interrupt is happening. This assumption is not longer true when
>high resolution timers and dynamic ticks come into play, as they
>may switch off the local APIC timer completely. Take the PIT/HPET
>interrupts into account too, to avoid false positives.
>
>Signed-off-by: Thomas Gleixner <[email protected]>
>Signed-off-by: Ingo Molnar <[email protected]>
>
>Index: linux-2.6.19-rc5-mm1/arch/i386/kernel/nmi.c
>===================================================================
>--- linux-2.6.19-rc5-mm1.orig/arch/i386/kernel/nmi.c
>2006-11-09 17:47:58.000000000 +0100
>+++ linux-2.6.19-rc5-mm1/arch/i386/kernel/nmi.c
>2006-11-09 20:52:29.000000000 +0100
>@@ -23,6 +23,7 @@
> #include <linux/dmi.h>
> #include <linux/kprobes.h>
> #include <linux/cpumask.h>
>+#include <linux/kernel_stat.h>
>
> #include <asm/smp.h>
> #include <asm/nmi.h>
>@@ -920,9 +921,13 @@ __kprobes int nmi_watchdog_tick(struct p
> cpu_clear(cpu, backtrace_mask);
> }
>
>- sum = per_cpu(irq_stat, cpu).apic_timer_irqs;
>+ /*
>+ * 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 = per_cpu(irq_stat, cpu).apic_timer_irqs + kstat_irqs(0);
>
>- /* if the apic timer isn't firing, this cpu isn't doing much */
>+ /* if the none of the timers isn't firing, this cpu
>isn't doing much */
> if (!touched && last_irq_sums[cpu] == sum) {
> /*
> * Ayiee, looks like this CPU is stuck ...
>
Similar change is needed for x86-64 as well. No?
Thanks,
Venki
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]