freebsd-nq/sys
Kirk McKusick 1d733bbd10 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>
2000-12-13 08:30:35 +00:00
..
alpha Sync with i386/GENERIC rev 1.294 removing "COMPAT_OLDPCI". 2000-12-13 07:34:47 +00:00
amd64 Remove the COMPAT_OLDPCI option, it's going away. 2000-12-13 01:11:34 +00:00
boot Add a magic number, for easier identification of boot0. At present, 2000-12-12 17:27:35 +00:00
cam Add needed include of <sys/devicestat.h> 2000-12-07 22:31:13 +00:00
coda Protect accesses to member of struct proc with the proc lock. 2000-12-06 01:45:20 +00:00
compat - Change the allproc_lock to use a macro, ALLPROC_LOCK(how), instead 2000-12-13 00:17:05 +00:00
compile
conf Next round of PCI subsystem updates: 2000-12-13 01:25:11 +00:00
contrib/dev Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
crypto Initial import of AES algorithm code (aka Rijndael) from KAME. 2000-10-30 11:03:32 +00:00
ddb Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
dev Remove unnecessary includes found by phk's script. I've been building 2000-12-13 06:28:37 +00:00
fs o Tighten restrictions on use of /proc/pid/ctl and move access checks 2000-12-13 04:28:24 +00:00
geom Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
gnu Put the bits in place for Alpha support for ext2. Not tested. 2000-12-09 22:32:49 +00:00
i4b Change initialiser to match new structure layout. 2000-12-12 23:52:43 +00:00
i386 Remove the COMPAT_OLDPCI option, it's going away. 2000-12-13 01:11:34 +00:00
ia64 Sync with i386/GENERIC rev 1.294 removing "COMPAT_OLDPCI". 2000-12-13 07:34:47 +00:00
isa It's possible for an ISA bus to be hung off an EISA bridge, so we need to 2000-12-12 23:33:29 +00:00
isofs/cd9660 Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
kern Use proper mutex locking when calling setrunnable from speedup_syncer(). 2000-12-13 01:06:53 +00:00
libkern Add __ucmpdi2 prototype to quelch a warning. 2000-12-07 22:28:20 +00:00
miscfs o Tighten restrictions on use of /proc/pid/ctl and move access checks 2000-12-13 04:28:24 +00:00
modules Add aic and ray modules. I've been building these for a while now on 2000-12-13 05:54:26 +00:00
msdosfs Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
net Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
netatalk Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
netatm Add back some now needed #include <sys/systm.h> 2000-12-07 22:19:06 +00:00
netgraph Fix bug in parse type for struct ng_one2many_config. 2000-12-12 23:12:22 +00:00
netinet Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
netinet6 Staticize some malloc M_ instances. 2000-12-08 20:09:00 +00:00
netipx Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
netkey Revert previous commit after discussion with phk. 2000-10-30 09:13:46 +00:00
netnatm Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
netncp Make malloc use M_ZERO in some more locations. 2000-10-29 16:14:28 +00:00
netns Lock down the network interface queues. The queue mutex must be obtained 2000-11-25 07:35:38 +00:00
nfs Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
nfsclient Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
nfsserver Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
ntfs Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
nwfs v_interlock is a mutex now, not simple lock. 2000-11-04 02:42:11 +00:00
pc98 Removed the VoxWare sound drivers. 2000-12-10 10:02:32 +00:00
pccard add PNPID for PnP PCMCIA, SCM SwapBox Classic X2P. 2000-12-11 15:02:50 +00:00
pci Next round of PCI subsystem updates: 2000-12-13 01:25:11 +00:00
posix4 Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
powerpc Store in globaldata our CPU ID#. Provide a lock for panics - only one 2000-12-09 20:52:42 +00:00
rpc
svr4 This patchset fixes a large number of file descriptor race conditions. 2000-11-18 21:01:04 +00:00
sys Eliminate a race in MEXTFREE(). The reference counter decrement and test 2000-12-13 05:13:02 +00:00
tools Simplify this a bit so that it doesn't have to generate silly redundant 2000-12-06 06:59:38 +00:00
ufs Preventing runaway kernel soft updates memory, take three. 2000-12-13 08:30:35 +00:00
vm - Change the allproc_lock to use a macro, ALLPROC_LOCK(how), instead 2000-12-13 00:17:05 +00:00
Makefile I should know better than to touch this without testing a 'make release' 2000-08-24 18:53:09 +00:00