Re: [PATCH] proc/sysctl: prune stale dentries during unregistering

From: Konstantin Khlebnikov
Date: Fri Feb 10 2017 - 02:58:10 EST


On 10.02.2017 10:47, Al Viro wrote:
On Fri, Feb 10, 2017 at 10:35:02AM +0300, Konstantin Khlebnikov wrote:

# time sysctl -a > /dev/null
real 1m12.806s
user 0m0.016s
sys 1m12.400s

Currently only memory reclaimer could remove this garbage.
But without significant memory pressure this never happens.

This patch collects sysctl inodes into list on sysctl table header and
prunes all their dentries once that table unregisters.

I'd probably go for hlist, but that's mostly cosmetic difference; how about
the matching stats *after* that patch?


dcache size doesn't grow endlessly, so stats are fine

# sysctl fs.dentry-state
fs.dentry-state = 92712 58376 45 0 0 0

# time sysctl -a &>/dev/null

real 0m0.013s
user 0m0.004s
sys 0m0.008s