cvs commit: src/sys/kern vfs_bio.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Jun 9 22:02:35 PDT 2008
dillon 2008/06/09 22:02:09 PDT
DragonFly src repository
Modified files:
sys/kern vfs_bio.c
Log:
Change bwillwrite() to smooth out performance under heavy loads. Blocking
based on strict hystersis was being used to try to gang flushes together
but filesystems can still blow out the buffer cache and cause processes
to block for long periods of time waiting for the dirty count to drop
significantly.
Instead, as the number of dirty buffers exceeds the desired maximum
bwillwrite() imposes a dynamic delay which increases as the number of
dirty buffers increase. This improves the stall behavior under heavy loads
and keeps the system responsive.
TODO: The algorithm needs to have a per-LWP heuristic to penalize heavy
writers more then light ones.
Revision Changes Path
1.103 +41 -10 src/sys/kern/vfs_bio.c
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_bio.c.diff?r1=1.102&r2=1.103&f=u
More information about the Commits
mailing list