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

HATAYAMA Daisuke d.hatayama at jp.fujitsu.com
Mon Feb 20 00:17:33 EST 2012


From: Don Zickus <dzickus at redhat.com>
Subject: Re: [tip:x86/debug] x86/kdump: No need to disable ioapic/ lapic in crash path
Date: Fri, 17 Feb 2012 15:18:42 -0500

> 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.
> 

Please don't confused. I used RHEL kernels based on 2.6.18 and
2.6.32. I didn't use the patch disabling local apic.

>> 
>>   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.
> 

Thanks.

>> 
>> 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
> 

Fig 10-4 explaining Local APIC Structure says INIT/NMI/SMI are
directly sent to CPU Core, but the later part of this route is not
explained formally anyware. Only the explanation is the sentence in
6.7 Nonmaskable Interrupt (NMI):

  The processor also invokes certain hardware conditions to insure
  that no other interrupts, including NMI interrupts, are received
  until the NMI handler has completed executing.

I'm just wondering if this is explained more formally anyware.

Thanks.
HATAYAMA, Daisuke




More information about the kexec mailing list