aboutsummaryrefslogtreecommitdiffstats
path: root/mm/slab_common.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2017-02-22 18:41:27 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2017-02-22 19:41:27 -0500
commitc9fc586403e7c85eee06b2d5dea14ce71c00fcd8 (patch)
tree4edb0cd2ebf8b0439239fb1ebe511e3def80e39a /mm/slab_common.c
parent510ded33e075c2bd662b1efab0110f4240325fc9 (diff)
slab: introduce __kmemcg_cache_deactivate()
__kmem_cache_shrink() is called with %true @deactivate only for memcg caches. Remove @deactivate from __kmem_cache_shrink() and introduce __kmemcg_cache_deactivate() instead. Each memcg-supporting allocator should implement it and it should deactivate and drain the cache. This is to allow memcg cache deactivation behavior to further deviate from simple shrinking without messing up __kmem_cache_shrink(). This is pure reorganization and doesn't introduce any observable behavior changes. v2: Dropped unnecessary ifdef in mm/slab.h as suggested by Vladimir. Link: http://lkml.kernel.org/r/20170117235411.9408-8-tj@kernel.org Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Vladimir Davydov <vdavydov.dev@gmail.com> Cc: Christoph Lameter <cl@linux.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: David Rientjes <rientjes@google.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/slab_common.c')
-rw-r--r--mm/slab_common.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/mm/slab_common.c b/mm/slab_common.c
index 274697e1a42a..59e41bb81575 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -646,7 +646,7 @@ void memcg_deactivate_kmem_caches(struct mem_cgroup *memcg)
646 if (!c) 646 if (!c)
647 continue; 647 continue;
648 648
649 __kmem_cache_shrink(c, true); 649 __kmemcg_cache_deactivate(c);
650 arr->entries[idx] = NULL; 650 arr->entries[idx] = NULL;
651 } 651 }
652 mutex_unlock(&slab_mutex); 652 mutex_unlock(&slab_mutex);
@@ -794,7 +794,7 @@ int kmem_cache_shrink(struct kmem_cache *cachep)
794 get_online_cpus(); 794 get_online_cpus();
795 get_online_mems(); 795 get_online_mems();
796 kasan_cache_shrink(cachep); 796 kasan_cache_shrink(cachep);
797 ret = __kmem_cache_shrink(cachep, false); 797 ret = __kmem_cache_shrink(cachep);
798 put_online_mems(); 798 put_online_mems();
799 put_online_cpus(); 799 put_online_cpus();
800 return ret; 800 return ret;