> In the slub allocator, when the last object of a page goes away, we
> don't necessarily free it - there is not necessarily a test for empty
> page in any slab_free path.
This is the same btw in SLAB which keeps objects in per cpu caches and
keeps empty slab pages on special queues.
> This patch marks all memcg caches as dead. kmem_cache_shrink is called
> for the ones who are not yet dead - this will force internal cache
> reorganization, and then all references to empty pages will be removed.
You need to call this also for slab to drain the caches and free the pages
on the empty list.