Re: [RFC][PATCH] nmi watchdog: handle NMI_IO_APIC on nmi_watchdog

From: Maciej W. Rozycki
Date: Wed Oct 22 2008 - 18:45:53 EST

On Wed, 22 Oct 2008, Aristeu Rozanski wrote:

> > > static void __acpi_nmi_disable(void *__unused)
> > > {
> > > apic_write(APIC_LVT0, APIC_DM_NMI | APIC_LVT_MASKED);
> > > }
> > >
> > > do you think this isn't enough?
> >
> > but this stops all NMIs, not just the IO-APIC generated ones, doesnt it?
> external NMIs would come by LINT1, no?


> after reading a lot and talking with Vivek, what I understood was that 8259 is
> also connected to LINT0, so timer interrupts would be reported both in
> IOAPIC and on LINT0. LVT0 is being configured on setup_nmi() to generate
> an NMI. Also, the same timer interrupt would generate an regular interrupt
> coming from IOAPIC. Clearing the APIC_DM_NMI on LVT0 would disable the
> NMI delivery, but not the regular interrupt.
> or am I missing something here?

You are correct. The routing of the 8254 timer interrupt may vary, but
the NMI watchdog it drives, if supported, always uses the LINT0 input of
all the local APICs.

You seem to be writing in reply to a very old thread -- please make sure
your concerns are still valid with current code. For example we have an
implementation of __acpi_nmi_disable() now, which is exactly your proposed

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at