On Sat, Jan 14, 2017 at 12:54:47AM -0500, Tejun Heo wrote: > __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. > > Signed-off-by: Tejun Heo <t...@kernel.org> > Cc: Vladimir Davydov <vdavydov....@gmail.com> > Cc: Christoph Lameter <c...@linux.com> > Cc: Pekka Enberg <penb...@kernel.org> > Cc: David Rientjes <rient...@google.com> > Cc: Joonsoo Kim <iamjoonsoo....@lge.com> > Cc: Andrew Morton <a...@linux-foundation.org>
Acked-by: Vladimir Davydov <vdavydov....@gmail.com> ... > diff --git a/mm/slab.h b/mm/slab.h > index 8f47a44..73ed6b5 100644 > --- a/mm/slab.h > +++ b/mm/slab.h > @@ -164,7 +164,10 @@ static inline unsigned long kmem_cache_flags(unsigned > long object_size, > > int __kmem_cache_shutdown(struct kmem_cache *); > void __kmem_cache_release(struct kmem_cache *); > -int __kmem_cache_shrink(struct kmem_cache *, bool); > +int __kmem_cache_shrink(struct kmem_cache *); > +#if defined(CONFIG_MEMCG) && !defined(CONFIG_SLOB) > +void __kmemcg_cache_deactivate(struct kmem_cache *s); > +#endif nit: ifdef is not necessary