Date: Wed, 13 Dec 2000 00:30:37 -0800 (PST) From: Kirk McKusick <mckusick@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ufs/ffs ffs_inode.c ffs_softdep.c src/sys/ufs/ufs ufs_extern.h ufs_lookup.c Message-ID: <200012130830.eBD8UbJ17674@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 <ps@yahoo-inc.com>
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200012130830.eBD8UbJ17674>
