Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Dec 2000 00:54:20 -0800
From:      Alfred Perlstein <bright@wintelcom.net>
To:        Kirk McKusick <mckusick@FreeBSD.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/ufs/ffs ffs_inode.c ffs_softdep.c src/sys/ufs/ufs ufs_extern.h ufs_lookup.c
Message-ID:  <20001213005420.Z16205@fw.wintelcom.net>
In-Reply-To: <200012130830.eBD8UbJ17674@freefall.freebsd.org>; from mckusick@FreeBSD.org on Wed, Dec 13, 2000 at 12:30:37AM -0800
References:  <200012130830.eBD8UbJ17674@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
* Kirk McKusick <mckusick@FreeBSD.org> [001213 00:30] wrote:
> 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.

Possible, but this doesn't seem like it will always do the
job.  Why not implement a max amount of requests and block
processes who want to add until the threshhold goes below
some mark?

-- 
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
"I have the heart of a child; I keep it in a jar on my desk."


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?20001213005420.Z16205>