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.