lkml.org 
[lkml]   [2008]   [Oct]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC][PATCH] nmi watchdog: handle NMI_IO_APIC on nmi_watchdog
> > > 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?
>
> 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?

--
Aristeu



\
 
 \ /
  Last update: 2008-10-23 00:25    [W:0.351 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site