On Fri, Mar 08, 2019 at 09:22:37AM -0700, Tycho Andersen wrote: > On Fri, Mar 08, 2019 at 04:15:46PM +0000, Christopher Lameter wrote: > > 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). > > Yep, thanks. Somehow I got confused by the comment. I removed code here from the original RFC-v2, if this comment is confusing perhaps we are better off without it. thanks, Tobin.