On Mon, 15 Jul 2024, Vlastimil Babka wrote: > Slab caches with refcount 0 are in the process of being destroyed so > it's undesirable for new caches to attempt merging with them. A > synchronous destruction happens under slab_mutex thus excluding > concurrent cache creation and merging. Full destruction of > SLAB_TYPESAFE_BY_RCU caches might be delayed, but the cache is still > taken off the slab_caches list immediately, thus unreachable by cache > creation. > > However a cache where __kmem_cache_shutdown() fails because it contains > objects that were not freed (due to a bug in the cache user) will be > left on the slab_caches list and might be considered for merging. > Also the following patches will introduce a possibility of a cache with > refcount 0 being temporarily reachable on the slab_list even in case of > no bugs, due to kfree_rcu() in flight. > > For these reasons, prevent merging with caches that have zero refcount. > > Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx> Acked-by: David Rientjes <rientjes@xxxxxxxxxx>