Subject: Re: Rebooting woes again
To: Lennart Augustsson <lennart@augustsson.net>
From: Simon Burge <simonb@netbsd.org>
List: tech-kern
Date: 03/16/2000 10:14:57
Lennart Augustsson wrote:
> *sigh* I'm trying to debug some USB stuff in the kernel and I have to
> reboot every few minutes. Rebooting seems to be as unreliable as
> it has ever been. About every other reboot fails because it can't
> sync all the buffers. Wasn't there some debugging flags you could
> turn on to help track down this problem?
Can you experiment with "reboot" vs. "reboot -l"? Here's some
analysis I did around August last year when I first saw the
problem.
Ok, more fuel for the fire. "reboot" reboots cleanly, and
"reboot -l" results in the busy buffers (shutdown calls reboot
with the -l flag). The -l flag to reboot had it's meaning
reversed in the manpage - I've fixed this.
Simply adding:
openlog("halt", LOG_NDELAY, LOG_AUTH);
syslog(LOG_USER, "syslog message");
after the normal syslog test also results in a clean reboot.
Just doing the openlog() (even with LOG_NDELAY) is not enough.
It went away and then reappeared recently. Do you have an mfs for /tmp?
If you change the "#ifdef DEBUG" to "#if 1" around 2320 of vfs_subr.c
you'll see a list of locked vnodes, and for me it's always an mfs vnode
that's locked. I've found "umount /tmp; shutdown -r now" works well, if
nothing's holding anything open in /tmp.
Simon.