slab: remove slub sysfs interface files early for empty memcg caches
authorTejun Heo <[email protected]>
Wed, 22 Feb 2017 23:41:33 +0000 (15:41 -0800)
committerLinus Torvalds <[email protected]>
Thu, 23 Feb 2017 00:41:27 +0000 (16:41 -0800)
commit50862ce711b3e9cf8511df7a356892e128b037d3
treea65cd9b2c8fe319bd8cce533c0977e7932d3442e
parent01fb58bcba63f8fba37581c24c99e9a515dd0335
slab: remove slub sysfs interface files early for empty memcg caches

With kmem cgroup support enabled, kmem_caches can be created and
destroyed frequently and a great number of near empty kmem_caches can
accumulate if there are a lot of transient cgroups and the system is not
under memory pressure.  When memory reclaim starts under such
conditions, it can lead to consecutive deactivation and destruction of
many kmem_caches, easily hundreds of thousands on moderately large
systems, exposing scalability issues in the current slab management
code.  This is one of the patches to address the issue.

Each cache has a number of sysfs interface files under /sys/kernel/slab.
On a system with a lot of memory and transient memcgs, the number of
interface files which have to be removed once memory reclaim kicks in
can reach millions.

Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Tejun Heo <[email protected]>
Reported-by: Jay Vana <[email protected]>
Acked-by: Vladimir Davydov <[email protected]>
Cc: Christoph Lameter <[email protected]>
Cc: Pekka Enberg <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: Joonsoo Kim <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/slub.c