Re: [PATCH 2/4] signal: Make flush_sigqueue() use free_q to release memory

From: Matthew Wilcox
Date: Fri Mar 22 2019 - 16:00:07 EST


On Fri, Mar 22, 2019 at 07:39:31PM +0000, Christopher Lameter wrote:
> On Fri, 22 Mar 2019, Waiman Long wrote:
>
> > >
> > >> I am looking forward to it.
> > > There is also alrady rcu being used in these paths. kfree_rcu() would not
> > > be enough? It is an estalished mechanism that is mature and well
> > > understood.
> > >
> > In this case, the memory objects are from kmem caches, so they can't
> > freed using kfree_rcu().
>
> Oh they can. kfree() can free memory from any slab cache.

Only for SLAB and SLUB. SLOB requires that you pass a pointer to the
slab cache; it has no way to look up the slab cache from the object.