Ctrl-Alt-ESC during boot
Matthew Dillon
dillon at apollo.backplane.com
Fri Jan 28 00:48:16 PST 2005
:but something bad is happening upon dereferencing td
:
:(kgdb) p td->td_cpl
:
:Chuck Tuffli
:Agilent Technologies
No, actually spl0() is working just fine. What is happening is that
there is a pending interrupt marked and spl0 is calling splz() to
process the pending interrupts.
splz() is pure assembly... it doesn't have a frame pointer so GDB's
backtrace doesn't see it. But you should be able to figure out the code
that is actually running by examining the stack starting at the stack
pointer and looking for addresses above 0xc0000000. You would have to
compare them against a sorted namelist of the kernel binary
(nm -n /kernel | less) to figure out which routine the kernel is
actually in.
It could be a stuck interrupt. That is, if an interrupt service routine
runs but does not clear the source of the interrupt, the interrupt will
remain pending and the interrupt service routine will run again in a
tight loop. The interrupt rate limiting code is supposed to deal with
that but that code might not be operational so early in the boot
sequence.
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
More information about the Kernel
mailing list