kernel not bootable today?

Andrew Gallatin gallatin at cs.duke.edu
Mon Jul 19 07:49:40 PDT 2004


Peter Grehan writes:
 > > OK boot
 > > Kernel entry at 0x12ab48 ...
 > > KDB: debugger backends: ddb
 > > KDB: current backend: ddb
 > > 
 > > DEFAULT CATCH!, code=900 at   %SRR0: 0000a840   %SRR1: 00083000 
 > >  ok
 > > 0 >
 > 
 >   That's before interrupt vectors have been setup, or it would
 > have dropped into ddb. Is this repeatable ?

Yes.. it seems to be.  I run a kernel without WITNESS, INVARIANTS, 
INVARIANTS_SUPPORT, or KTR.   That will crash like this every time.
If I add back INVARIANTS_SUPPORT and INVARIANTS, it works fine.
Eg:
diff TEST.worked TEST
64,65d63
< options       INVARIANTS              #Enable calls of extra sanity checking
< options       INVARIANT_SUPPORT       #Extra sanity checks of internal structures, required by INVARIANTS

Maybe there is some cache-sync or something that is required at load
time, but which is missing, and INVARIANTS slows down the MI code enough to
mask the bug?

Now that I've found the option that kills it, I'll see if I can do a
binary CVS search for a "good" vs "bad" kernel date.  If there's a
better way, please let me know..  From the SRM console on alpha, you
could at least get the PC at the time of the fault.  Is this possible
with openfirmware?

Drew


More information about the freebsd-ppc mailing list