Swapfile problem in 6?
Peter Jeremy
PeterJeremy at optushome.com.au
Tue Nov 15 02:38:28 PST 2005
On Tue, 2005-Nov-15 02:08:12 -0800, Rob wrote:
> makeoptions DEBUG=-g
> options INVARIANTS
> options WITNESS
> options WITNESS_KDB
> options KDB
> options DDB
> options DDB_NUMSYM
> options GDB
>
>Is that enough?
If your system is headless, you probably want 'options BREAK_TO_DEBUGGER'
as well.
First question is: Does the system still deadlock? INVARIANTS and
WITNESS will have added sanity checks which might have picked up the
problem.
>1) Can I debug a kernel that does not crash, but
> just hangs in a deadlock? Everything seems to
> be frozen, except pinging the PC....
Have a look at http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug-online-ddb.html
and ddb(4). Unless you have another system handy, you might like to print
out ddb(4) - it's difficult to read man pages when you're in the kernel
debugger :-).
>2) Is such debugging possible on a headless PC
> without a keyboard attached?
> I do have serial console access.
Yes. See above URL. The advantage is that you can (hopefully)
capture a log of your debug session. Send a serial BREAK and you
should get a DDB> prompt.
Basically, wait until your system deadlocks. BREAK into DDB.
As a start, run 'show lockedvnods', 'ps'. My guess is that you'll
see a lock that has a number of waiters - which is probably the
culprit. Use 'panic' to get a crashdump and then you can use kgdb
to rummage around once you reboot - see
http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug-gdb.html
If in doubt, post the output from the above commands here and someone
will hopefully provide further input.
--
Peter Jeremy
More information about the freebsd-stable
mailing list