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