Re: [RFC PATCH V3 6/7] mm/slab: save memory by allocating slabobj_ext array from leftover

From: Harry Yoo

Date: Wed Oct 29 2025 - 21:11:37 EST


On Wed, Oct 29, 2025 at 07:45:32PM +0100, Andrey Ryabinin wrote:
>
>
> On 10/27/25 1:28 PM, Harry Yoo wrote:
>
> >
> > +#ifdef CONFIG_SLAB_OBJ_EXT
> > +
> > +/*
> > + * Check if memory cgroup or memory allocation profiling is enabled.
> > + * If enabled, SLUB tries to reduce memory overhead of accounting
> > + * slab objects. If neither is enabled when this function is called,
> > + * the optimization is simply skipped to avoid affecting caches that do not
> > + * need slabobj_ext metadata.
> > + *
> > + * However, this may disable optimization when memory cgroup or memory
> > + * allocation profiling is used, but slabs are created too early
> > + * even before those subsystems are initialized.
> > + */
> > +static inline bool need_slab_obj_exts(struct kmem_cache *s)
> > +{
> > + if (!mem_cgroup_disabled() && (s->flags & SLAB_ACCOUNT))
>
> Shouldn't this be !memcg_kmem_online() check?
> In case of disabled kmem accounting via 'cgroup.memory=nokmem'

Good catch. Will fix, thanks!

> > + return true;
> > +
> > + if (mem_alloc_profiling_enabled())
> > + return true;
> > +
> > + return false;
> > +}
> > +

--
Cheers,
Harry / Hyeonggon