From owner-freebsd-current Sun Dec 19 11:30: 3 1999 Delivered-To: freebsd-current@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id C23CF151DC for ; Sun, 19 Dec 1999 11:29:55 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id LAA06659; Sun, 19 Dec 1999 11:29:46 -0800 (PST) (envelope-from dillon) Date: Sun, 19 Dec 1999 11:29:46 -0800 (PST) From: Matthew Dillon Message-Id: <199912191929.LAA06659@apollo.backplane.com> To: Peter Wemm Cc: Greg Lehey , FreeBSD current users Subject: Re: Recent current hangs frequently for 1 to 2 seconds. References: <19991219091857.914021CA0@overcee.netplex.com.au> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG :> 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 : :> @@ -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