From 126333cff710983faeb4185b0470013d66b16717 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Thu, 28 Apr 2011 11:48:18 -0500 Subject: [PATCH] libafs: Use vcount, not maxvcount to trim vcaches Every five minutes we afs_ShakeLooseVCaches to try and return the number of vcaches in use down to the originally configured -stat level (when we are using dynamic vcaches). We should calculate how many vcaches to flush based on the number of currently active vcaches (afs_vcount), not the peak number (afs_maxvcount). Otherwise, once we exceed the configured -stat level, we will always keep trying to flush numerous vcaches, even if we barely have any vcaches in use. Reviewed-on: http://gerrit.openafs.org/4584 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 2a2206bfe16815a6625fee4d37520e9676d88ab4) Change-Id: I80cfbf31ba81d7cf23013c0efcea0b8ac8c341db Reviewed-on: http://gerrit.openafs.org/4602 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/afs/afs_daemons.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/afs/afs_daemons.c b/src/afs/afs_daemons.c index f14c75c44..91466b76e 100644 --- a/src/afs/afs_daemons.c +++ b/src/afs/afs_daemons.c @@ -216,10 +216,10 @@ afs_Daemon(void) if (afsd_dynamic_vcaches && (last5MinCheck + 300 < now)) { /* start with trying to drop us back to our base usage */ int anumber; - if (afs_maxvcount <= afs_cacheStats) + if (afs_vcount <= afs_cacheStats) anumber = VCACHE_FREE; else - anumber = VCACHE_FREE + (afs_maxvcount - afs_cacheStats); + anumber = VCACHE_FREE + (afs_vcount - afs_cacheStats); ObtainWriteLock(&afs_xvcache, 734); afs_ShakeLooseVCaches(anumber); -- 2.39.5