Re: [RFC 02/15] slub: Add isolate() and migrate() methods

From: Christopher Lameter
Date: Fri Mar 08 2019 - 11:15:49 EST


On Fri, 8 Mar 2019, Tycho Andersen wrote:

> On Fri, Mar 08, 2019 at 03:14:13PM +1100, Tobin C. Harding wrote:
> > diff --git a/mm/slab_common.c b/mm/slab_common.c
> > index f9d89c1b5977..754acdb292e4 100644
> > --- a/mm/slab_common.c
> > +++ b/mm/slab_common.c
> > @@ -298,6 +298,10 @@ int slab_unmergeable(struct kmem_cache *s)
> > if (!is_root_cache(s))
> > return 1;
> >
> > + /*
> > + * s->isolate and s->migrate imply s->ctor so no need to
> > + * check them explicitly.
> > + */
>
> Shouldn't this implication go the other way, i.e.
> s->ctor => s->isolate & s->migrate

A cache can have a constructor but the object may not be movable (I.e.
currently dentries and inodes).