kernel - Change namecache negative caching algorithm
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 2 Mar 2013 06:02:18 +0000 (22:02 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 2 Mar 2013 06:02:18 +0000 (22:02 -0800)
commit6363f2683b09cd5c4cd7b92ec1963bb66da04543
treefe6f708f089560cfc8bfb5523d9084d8904c85e6
parentf7de9d7f75ad7de57ef565dffd6a7b1ba9909344
kernel - Change namecache negative caching algorithm

* Use desiredvnodes instead of numcache (current number of namecache
  entries) to scale the number of negative cache entries.

  This allows for more negative cache entries and no longer has
  degenerate situations when the value of numcache is low.

* namecache entries are still cleaned up in the critical namecache
  paths, but vnlru() now also cleans up the namecache when it exceeds
  80% of its nominal maximum.  The result is that the namecache is
  kept under better control AND the cleanups are generally able to be
  handled by vnlru() and do not effect the critical paths.

* Huge improvement in poudriere during concurrent python easy_install
  execution.  The python easy_install performs horribly without sufficient
  negative caching.  This fixes that.

Reported-by: thesjg
sys/kern/vfs_cache.c
sys/kern/vfs_mount.c
sys/sys/namecache.h