cvs commit: src/sys/sys src/sys/kern
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Oct 18 22:55:57 PDT 2004
dillon 2004/10/18 22:55:34 PDT
DragonFly src repository
Modified files:
sys/sys namecache.h
sys/kern vfs_cache.c vfs_mount.c
Log:
Fix bugs in the limiting code for negative-hit namecache entries. The system
was allowing too many negative entries to build up. Since these entries by
definition do not have associated vnodes the vnode code is not responsible
for limiting the number of negative entries. Since vnodes associated
with non-leaf namecache entries are held, the build-up of negative entries
prevented directory vnodes from being recycled and caused vnlru_proc to fail.
To fix this we check for and cleanup negative entries in both the old API
cache_enter() and the new API cache_nlookup(). Rather then just removing one
when we exceed the limit we remove 10 and we create a 90%/100% hysteresis
to avoid a non-optimal following cleanup call on every cache lookup.
Reported-by: Pawel Biernacki <kaktus at xxxxxxxxxxxxxxx>,
Chris Pressey <cpressey at xxxxxxxxxxxxxxx>
Testing-by: same
Revision Changes Path
1.14 +1 -0 src/sys/sys/namecache.h
1.39 +50 -2 src/sys/kern/vfs_cache.c
1.2 +1 -0 src/sys/kern/vfs_mount.c
http://www.dragonflybsd.org/cvsweb/src/sys/sys/namecache.h.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cache.c.diff?r1=1.38&r2=1.39&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_mount.c.diff?r1=1.1&r2=1.2&f=u
More information about the Commits
mailing list