DragonFly commits List (threaded) for 2004-10
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
cvs commit: src/sys/sys src/sys/kern
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@xxxxxxxxxxxxxxx>,
Chris Pressey <cpressey@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
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]