Re: [5/6] 2.6.21-rc2: known regressions

Ingo Molnar
2007-03-05T15:36:27Z

* Daniel Walker <dwalker@mvista.com> wrote:

> > > FYI, this is not a "wont boot" problem, this should be a "NMI
> > > watchdog does not work" problem - which has far lower severity.
> > > Also, Thomas did a fix for this which is now in -mm.
> >
> > yup, you should be able to cross this one off, Adrian. The fix
> > worked for me, at least.
>
> I didn't see a fix for this one go by .. I'll check the usual places I
> guess ..

find it below.

Ingo

------------------------------------------------------
Subject: fix "NMI appears to be stuck"
From: Thomas Gleixner <tglx@linutronix.de>

Testing NMI watchdog ... CPU#0: NMI appears to be stuck (54->54)!
CPU#1: NMI appears to be stuck (0->0)!

Keep the PIT/HPET alive when nmi_watchdog = 1 is given on the command
line.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

arch/i386/kernel/apic.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)

diff -puN arch/i386/kernel/apic.c~fix-nmi-appears-to-be-stuck arch/i386/kernel/apic.c
--- a/arch/i386/kernel/apic.c~fix-nmi-appears-to-be-stuck
+++ a/arch/i386/kernel/apic.c
@@ -493,8 +493,15 @@ void __init setup_boot_APIC_clock(void)
/* No broadcast on UP ! */
if (num_possible_cpus() == 1)
return;
- } else
- lapic_clockevent.features &= ~CLOCK_EVT_FEAT_DUMMY;
+ } else {
+ /*
+ * If nmi_watchdog is set to IO_APIC, we need the
+ * PIT/HPET going. So we register lapic as a dummy
+ * device.
+ */
+ if (nmi_watchdog != NMI_IO_APIC)
+ lapic_clockevent.features &= ~CLOCK_EVT_FEAT_DUMMY;
+ }

/* Setup the lapic or request the broadcast */
setup_APIC_timer();