From owner-cvs-all Wed Dec 13 10:57:16 2000 From owner-cvs-all@FreeBSD.ORG Wed Dec 13 10:57:12 2000 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from logger.gamma.ru (logger.gamma.ru [194.186.254.23]) by hub.freebsd.org (Postfix) with ESMTP id A1F2237B400; Wed, 13 Dec 2000 10:57:09 -0800 (PST) Received: (from ivt@localhost) by logger.gamma.ru (8.9.3/8.9.3) id VAA31227; Wed, 13 Dec 2000 21:56:55 +0300 (MSK) From: Igor Timkin Message-Id: <200012131856.VAA31227@logger.gamma.ru> Subject: Re: cvs commit: src/sys/ufs/ffs ffs_inode.c ffs_softdep.c src/sys/ufs/ufs ufs_extern.h ufs_lookup.c In-Reply-To: <200012130830.eBD8UbJ17674@freefall.freebsd.org> "from Kirk McKusick at Dec 13, 2000 00:30:37 am" To: Kirk McKusick Date: Wed, 13 Dec 2000 21:56:55 +0300 (MSK) Cc: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL82 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG linking kernel.debug ffs_inode.o: In function `ffs_truncate': /sys/compile/NEWSFEED/../../ufs/ffs/ffs_inode.c:185: undefined reference to `softdep_slowdown' ufs_lookup.o: In function `ufs_dirremove': /sys/compile/NEWSFEED/../../ufs/ufs/ufs_lookup.c(.text+0x1175): undefined reference to `softdep_slowdown' *** Error code 1 Kernel without SOFTUPDATES. Kirk McKusick writes: > mckusick 2000/12/13 00:30:37 PST > > Modified files: > sys/ufs/ffs ffs_inode.c ffs_softdep.c > sys/ufs/ufs ufs_extern.h ufs_lookup.c > Log: > Preventing runaway kernel soft updates memory, take three. > Previously, the syncer process was the only process in the > system that could process the soft updates background work > list. If enough other processes were adding requests to that > list, it would eventually grow without bound. Because some of > the work list requests require vnodes to be locked, it was > not generally safe to let random processes process the work > list while they already held vnodes locked. By adding a flag > to the work list queue processing function to indicate whether > the calling process could safely lock vnodes, it becomes possible > to co-opt other processes into helping out with the work list. > Now when the worklist gets too large, other processes can safely > help out by picking off those work requests that can be handled > without locking a vnode, leaving only the small number of > requests requiring a vnode lock for the syncer process. With > this change, it appears possible to keep even the nastiest > workloads under control. > > Submitted by: Paul Saab > > Revision Changes Path > 1.66 +3 -3 src/sys/ufs/ffs/ffs_inode.c > 1.80 +160 -71 src/sys/ufs/ffs/ffs_softdep.c > 1.29 +2 -1 src/sys/ufs/ufs/ufs_extern.h > 1.42 +7 -2 src/sys/ufs/ufs/ufs_lookup.c > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe cvs-all" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message