Andrea Arcangeli <[EMAIL PROTECTED]> wrote: > > This below is an untested attempt at bringing dquot a bit more in line > with the API, to make the whole thing a bit more consistent,
Like this? (Noah, don't bother testing this one) Fix some bugs spotted by Andrea Arcangeli <[EMAIL PROTECTED]> - When we added /proc/sys/vm/vfs_cache_pressure we forgot to allow it to tune the dquot and mbcache slabs as well. - Reduce lock contention in shrink_dqcache_memory(). - Use dqstats.free_dquots in shrink_dqcache_memory(): this is the count of reclaimable objects. Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> --- 25-akpm/fs/dquot.c | 12 +++++------- 25-akpm/fs/mbcache.c | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff -puN fs/dquot.c~slab-shrinkers-use-vfs_cache_pressure fs/dquot.c --- 25/fs/dquot.c~slab-shrinkers-use-vfs_cache_pressure 2005-03-16 04:22:01.000000000 -0800 +++ 25-akpm/fs/dquot.c 2005-03-16 04:27:09.000000000 -0800 @@ -505,14 +505,12 @@ static void prune_dqcache(int count) static int shrink_dqcache_memory(int nr, unsigned int gfp_mask) { - int ret; - - spin_lock(&dq_list_lock); - if (nr) + if (nr) { + spin_lock(&dq_list_lock); prune_dqcache(nr); - ret = dqstats.allocated_dquots; - spin_unlock(&dq_list_lock); - return ret; + spin_unlock(&dq_list_lock); + } + return (dqstats.free_dquots / 100) * sysctl_vfs_cache_pressure; } /* diff -puN fs/mbcache.c~slab-shrinkers-use-vfs_cache_pressure fs/mbcache.c --- 25/fs/mbcache.c~slab-shrinkers-use-vfs_cache_pressure 2005-03-16 04:22:01.000000000 -0800 +++ 25-akpm/fs/mbcache.c 2005-03-16 04:24:43.000000000 -0800 @@ -225,7 +225,7 @@ mb_cache_shrink_fn(int nr_to_scan, unsig e_lru_list), gfp_mask); } out: - return count; + return (count / 100) * sysctl_vfs_cache_pressure; } _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/