[tip:x86/debug] x86/kdump: No need to disable ioapic/ lapic in crash path

Don Zickus dzickus at redhat.com
Fri Feb 17 15:18:42 EST 2012


On Sat, Feb 18, 2012 at 12:49:16AM +0900, HATAYAMA Daisuke wrote:
> A few days ago I investigted the case where system is reseted due to
> triple fault caused by the NMI after idt is disabled in
> machine_kexec. I didn't see the reset when trigering the kdump with
> NMI since the NMI is masked until next iret instruction executed as
> described in 6.7.2. Handling Multiple NMIs of Intel Manual Vol.3A.
> The NMI mask remains untill the first iret execution on the 2nd
> kernel: just the return path of the first kernel_thread invocation for
> init process. The exact path is:

hmm.  So even though the local apic was disabled you still got an NMI?
That could have been from an external NMI.  I forget how that is wired up,
if it goes through the IOAPIC to the Local APIC or directly to the NMI pin
on the cpu.

> 
>   switch_to
>   -> ret_from_fork
>      -> int_ret_from_sys_call
>         -> retint_restore_args
>            -> irq_return
> 
> At that phase idt is already set up and kdump works.
> 
> From the discussion I interpret kdump doesn't assume this behaviour,
> right?

probably not.

> 
> BTW, does anyone know the detail of the NMI mask? I couldn't figure
> out about it from the Intel spec more than ``certain hardware
> conditions''... I expect those who look at here are x86 NMI experts.

I don't understand the question.

Cheers,
Don



More information about the kexec mailing list