[PATCH], issue EOI to APIC prior to calling crash_kexec in die_nmi path

Eric W. Biederman ebiederm at xmission.com
Fri Feb 15 09:02:28 EST 2008


Neil Horman <nhorman at tuxdriver.com> writes:

>> 
>> Neil, is it possible to do some serial console debugging to find out
>> where exactly we are hanging? Beats me, what's that operation which can
>> not be executed while being in NMI handler and makes system to hang. I am
>> also curious to know if it is nested NMI case.
>> 
>> Thanks
>> Vivek
>> 
>
>
> Hey-
> 	Some intermediate results:
>
> I've instrumented head.S in the kernel with the following code:
> #define SEROUT(z) \     
> mov $0x3F8,%dx;\
> movb z,%al;\
> outb %dx
>
>
> And peppered different ascii characters throughout the startup code from
> startup_32 to right before the jump to start_kernel.  When I panic the system
> via an:
> echo c > /proc/sysrq_trigger
> I see an appropriate sequence of characters on the serial console
>
> When I panic the box by forcing an NMI watchdog timeout however, I see nothing.
>  The machine will either hang, or reset into the bios.  I think this is
> reasonably conclusive in its indication that we're not getting into the second
> kernel when this problem occurs.  Next I'll instrument the purgatory code in a
> simmilar way.

My apologies for the late reply.  You should be able to use the --console-serial
option to kexec to get output from purgatory, which will catch everything
except a little bit of the assembly stub.  purgatory even has a stripped down
version of printf you can call.

Eric



More information about the kexec mailing list