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