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

2017-02-19 Thread Al Viro
On Sat, Feb 18, 2017 at 09:55:28PM +0300, Konstantin Khlebnikov wrote: > This patch has locking problem. I've got lockdep splat under LTP. > > d_lock nests inside i_lock > sysctl_lock nests inside d_lock in d_compare > > This patch adds i_lock nesting inside sysctl_lock. Once ->unregistering is

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

2017-02-19 Thread Al Viro
On Sat, Feb 18, 2017 at 09:55:28PM +0300, Konstantin Khlebnikov wrote: > This patch has locking problem. I've got lockdep splat under LTP. > > d_lock nests inside i_lock > sysctl_lock nests inside d_lock in d_compare > > This patch adds i_lock nesting inside sysctl_lock. Once ->unregistering is

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

2017-02-18 Thread Konstantin Khlebnikov
This patch has locking problem. I've got lockdep splat under LTP. [ 6633.115456] == [ 6633.115502] [ INFO: possible circular locking dependency detected ] [ 6633.115553] 4.9.10-debug+ #9 Tainted: G L [ 6633.115584]

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

2017-02-18 Thread Konstantin Khlebnikov
This patch has locking problem. I've got lockdep splat under LTP. [ 6633.115456] == [ 6633.115502] [ INFO: possible circular locking dependency detected ] [ 6633.115553] 4.9.10-debug+ #9 Tainted: G L [ 6633.115584]

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

2017-02-13 Thread Eric W. Biederman
Konstantin Khlebnikov writes: > 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 >>> real1m12.806s >>> user0m0.016s >>> sys 1m12.400s >>> >>> Currently only

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

2017-02-13 Thread Eric W. Biederman
Konstantin Khlebnikov writes: > 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 >>> real1m12.806s >>> user0m0.016s >>> sys 1m12.400s >>> >>> Currently only memory reclaimer could remove

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

2017-02-09 Thread Konstantin Khlebnikov
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 real1m12.806s user0m0.016s sys 1m12.400s Currently only memory reclaimer could remove this garbage. But without significant memory pressure this

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

2017-02-09 Thread Konstantin Khlebnikov
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 real1m12.806s user0m0.016s sys 1m12.400s Currently only memory reclaimer could remove this garbage. But without significant memory pressure this

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

2017-02-09 Thread Al Viro
On Fri, Feb 10, 2017 at 10:35:02AM +0300, Konstantin Khlebnikov wrote: > # time sysctl -a > /dev/null > real1m12.806s > user0m0.016s > sys 1m12.400s > > Currently only memory reclaimer could remove this garbage. > But without significant memory pressure this never happens. > > This

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

2017-02-09 Thread Al Viro
On Fri, Feb 10, 2017 at 10:35:02AM +0300, Konstantin Khlebnikov wrote: > # time sysctl -a > /dev/null > real1m12.806s > user0m0.016s > sys 1m12.400s > > Currently only memory reclaimer could remove this garbage. > But without significant memory pressure this never happens. > > This

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

2017-02-09 Thread Konstantin Khlebnikov
Currently unregistering sysctl table does not prune its dentries. Stale dentries could slowdown sysctl operations significantly. For example, command: # for i in {1..10} ; do unshare -n -- sysctl -a &> /dev/null ; done creates a millions of stale denties around sysctls of loopback

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

2017-02-09 Thread Konstantin Khlebnikov
Currently unregistering sysctl table does not prune its dentries. Stale dentries could slowdown sysctl operations significantly. For example, command: # for i in {1..10} ; do unshare -n -- sysctl -a &> /dev/null ; done creates a millions of stale denties around sysctls of loopback