DragonFly BSD
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


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 18 Oct 2004 22:55:34 -0700 (PDT)

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]