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

From: Aristeu Rozanski
Date: Wed Mar 26 2008 - 11:24:45 EST


Hi Ingo,
> > This patch includes code to handle NMI_IO_APIC enabling/disabling by
> > nmi_watchdog proc file.
>
> hm:
>
> > +static void disable_ioapic_nmi_watchdog(void)
> > +{
> > + on_each_cpu(stop_apic_nmi_watchdog, NULL, 0, 1);
> > +}
>
> stop_apic_nmi_watchdog() doesnt currently properly disable the
> generation of NMIs when they come from an IO-APIC, so this will need
> more fixes i believe. One approach would be to save the IO-APIC id and
> pin when the watchdog is set up, and use it later on to poke that
> IO-APIC register to disable NMI generation there.
the patch I sent has this change:

@@ -270,6 +270,8 @@ void stop_apic_nmi_watchdog(void *unused
return;
if (nmi_watchdog == NMI_LOCAL_APIC)
lapic_watchdog_stop();
+ else
+ __acpi_nmi_disable(NULL);
__get_cpu_var(wd_enabled) = 0;
atomic_dec(&nmi_active);
}

and:
static void __acpi_nmi_disable(void *__unused)
{
apic_write(APIC_LVT0, APIC_DM_NMI | APIC_LVT_MASKED);
}

do you think this isn't enough?

--
Aristeu

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/