Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Dec 1999 11:29:46 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Peter Wemm <peter@netplex.com.au>
Cc:        Greg Lehey <grog@lemis.com>, FreeBSD current users <FreeBSD-current@FreeBSD.ORG>
Subject:   Re: Recent current hangs frequently for 1 to 2 seconds. 
Message-ID:  <199912191929.LAA06659@apollo.backplane.com>
References:   <19991219091857.914021CA0@overcee.netplex.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
:>     driver, but it's also possible that they are due to a bug in the
:>     buffer cache flushing code which the following patch fixes.  So try
:>     the patch and see if that fixes your problem.  If it doesn't then
:>     we can at least rule it out as being the cause of the problem you
:>     are seeing.
:[..]
:
:Just one comment..  You've replaced vfs_bio's call to speedup_syncer() with
:a bufdaemon speedup..    Granted I don't understand the details here, but
:I'm curious why? (or why not use both?)  The reason I ask is that I wonder
:whether removing of the speedup of the vnode cleanup rate is a good idea or
:not..  or if the bufdaemon speedup does this as a side effect via the hooks
:softupdates has got in the bio system.  This is not a criticism, just a
:request for enlightenment. :-)

    speedup_syncer() was designed for softupdates to allow softupdates to
    regulate the number of pending transactions.  The problem with it,
    though, is that calling the function results in a 'slow reaction' by
    the system rather then an 'immediate reaction', and in this particular
    case we need an immediate reaction.  A slow reaction gets us nowhere
    (gets us multi-second delays, in fact).

    bd_speedup() wakes up the buf_daemon and as part of the patch the 
    buf_daemon has been redesigned to handle the 'immediate reaction' case
    without compromising its dynamic stability characteristics (which are
    what tend to make it efficient under normal operation).

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>

:
:> @@ -1571,9 +1573,8 @@
:>  			flags = VFS_BIO_NEED_ANY;
:>  		}
:>  
:> -		/* XXX */
:> +		bd_speedup();	/* heeeelp */
:>  
:> -		(void) speedup_syncer();
:>  		needsbuffer |= flags;
:>  		while (needsbuffer & flags) {
:>  			if (tsleep(&needsbuffer, (PRIBIO + 4) | slpflag,
:
:Cheers,
:-Peter
:
:
:
:
:To Unsubscribe: send mail to majordomo@FreeBSD.org
:with "unsubscribe freebsd-current" in the body of the message
:



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?199912191929.LAA06659>