Re: [PATCH v3 08/15] mm/slab: pass alloc_flags through slab_post_alloc_hook() chain
From: Suren Baghdasaryan
Date: Wed Jun 17 2026 - 10:49:06 EST
On Tue, Jun 16, 2026 at 12:37 AM Harry Yoo <harry@xxxxxxxxxx> wrote:
>
>
>
> On 6/15/26 8:54 PM, Vlastimil Babka (SUSE) wrote:
> > Convert the whole following call stack to pass either slab_alloc_context
> > (thus including alloc_flags) or just alloc_flags as necessary:
> >
> > slab_post_alloc_hook()
> > alloc_tagging_slab_alloc_hook()
> > __alloc_tagging_slab_alloc_hook()
> > prepare_slab_obj_exts_hook()
> > alloc_slab_obj_exts()
> > memcg_slab_post_alloc_hook()
> > __memcg_slab_post_alloc_hook()
> > alloc_slab_obj_exts()
> >
> > Converting all these at once avoids unnecessary churn and is mostly
> > mechanical.
> >
> > This ultimately allows to decide if spinning is allowed using
> > alloc_flags in alloc_slab_obj_exts(), as well as slab_post_alloc_hook().
> > Aside from alloc_from_pcs_bulk() (to be handled next) there is nothing
> > else in slab itself relying on gfpflags_allow_spinning() which can
> > be false even if not called from kmalloc_nolock().
> >
> > A followup change will also use the alloc_flags availability in the call
> > stack above to remove the __GFP_NO_OBJ_EXT flag.
> >
> > For alloc_slab_obj_exts(), also replace the suboptimal "bool new_slab"
> > parameter with a SLAB_ALLOC_NEW_SLAB flag with identical functionality.
> >
> > To further reduce the number of parameters of slab_post_alloc_hook(),
> > also make 'struct list_lru *lru' (which is NULL for most callers) a new
> > field of slab_alloc_context.
> >
> > Link: https://patch.msgid.link/20260610-slab_alloc_flags-v2-9-7190909db118@xxxxxxxxxx
> > Signed-off-by: Vlastimil Babka (SUSE) <vbabka@xxxxxxxxxx>
> > ---
>
> Looks good to me,
> Reviewed-by: Harry Yoo (Oracle) <harry@xxxxxxxxxx>
Reviewed-by: Suren Baghdasaryan <surenb@xxxxxxxxxx>
>
> --
> Cheers,
> Harry / Hyeonggon