[PATCH 1/2] boot: ignore early NMIs
Don Zickus
dzickus at redhat.com
Mon Mar 12 10:41:40 EDT 2012
On Sun, Mar 11, 2012 at 10:49:23PM -0700, H. Peter Anvin wrote:
> On 03/11/2012 10:43 PM, Fernando Luis Vázquez Cao wrote:
>
> >
> > To tackle this issue we can either stop the hardlockup detector
> > or disable the LAPIC (the NMIs needed by x86's hardlockup detector
> > are generated using performance counters in the LAPIC), leaving
> > the I/O APICs untouched. The second is simpler and I think it
> > is the approach Don took to fix this issue in RHEL kernels.
> >
> > Unfortunately, this is not enough, we are still exposed to external
> > NMIs not routed through the LAPIC. In other words, we have to make
> > sure that we always have and IDT that is able to handle NMIs without
> > seemingly random reboots and lockups. To achieve this goal we need
> > to fix machine_kexec() and the early IDT handlers. The current patch
> > set takes care of the latter.
> >
>
> The only source of NMIs other than the LAPIC should be the system error
> which can be disabled through the RTC port, so I think your second
> paragraph here is way more mechanism than you need for very little gain.
I forgot about the RTC port. I can't seem to find the documentation for
it, but I believe it was port 0x70? That would cover external NMIs I
believe. Leaving the disable_lapic would cover internal NMIs.
I don't know how far do we want to go with installing stub idt handlers
and such. Honestly, I just wanted to i/o apic race condition fixed.
http://lkml.indiana.edu/hypermail/linux/kernel/1202.3/02533.html
Cheers,
Don
More information about the kexec
mailing list