Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Sep 2000 15:24:24 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        John Baldwin <jhb@pike.osd.bsdi.com>
Cc:        Tor.Egge@fast.no, current@FreeBSD.ORG
Subject:   Re: Dirty buffers on reboot..
Message-ID:  <Pine.BSF.4.21.0009111509410.606-100000@besplex.bde.org>
In-Reply-To: <200009110049.RAA28932@pike.osd.bsdi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 10 Sep 2000, John Baldwin wrote:

> Tor.Egge@fast.no wrote:
> > > Ok, an update on the dirty buffers on reboot:
> > > 
> > > If you use the reboot command, you will get dirty buffers.  If you use
> > > 'shutdown -r now' instead, you won't get dirty buffers.  Thus, as a workaround
> > > for now, use the shutdown command to reboot your box until we can track this
> > > down.

I haven't noticed this yet.  I normally use reboot.

> > I suggest using some method to allow interrupt threads to run during
> > the shutdown.  Perhaps the current process priority should be elevated
> > so it is guaranteed to be scheduled after the last interrupt thread
> > instead of some unrelated process.

I'm surprised they get stopped.  At least writing buffers in sync()
depends on interrupts working.  There is a problem for syncing in
panic().  Interrupts (and tsleep()) shouldn't work in panic(),
especially for panics in interrupt context.  They used to sort of
work by doing splx(safepri).  This corresponds to blowing open all
locks.

> > RCS file: /home/ncvs/src/sys/kern/kern_shutdown.c,v
> > retrieving revision 1.80
> > ...
> > @@ -247,7 +248,18 @@
> >  				break;
> >  			printf("%d ", nbusy);
> >  			sync(&proc0, NULL);
> > -			DELAY(50000 * iter);
> > +			
> > +			if (curproc != NULL) {
> 
> curproc is never NULL anymore, so the if statement can be removed.

Can't it happen for panics while cold?  The code "if (p && p != idleproc ...)"
in uprintf() seems to be to handle this.  We still have lots of (p == NULL)
checks where coldness probably isn't an issue.

Bruce



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0009111509410.606-100000>