[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.
> 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.
More information about the kexec