Re: [PATCH v3] mm/slub: deduplicate NUMA policy calculation in allocation paths

From: Vlastimil Babka (SUSE)

Date: Fri Jun 26 2026 - 07:08:37 EST


On 6/24/26 12:00, Hao Li wrote:
> Currently, alloc_from_pcs() and __slab_alloc_node() both calculate the
> NUMA policy independently. Since they are called consecutively in paths
> like __kmalloc_nolock_noprof() and slab_alloc_node(), this leads to
> redundant code snippets.
>
> Introduce a helper function to resolve the NUMA policy once, eliminating
> the duplicated code and reducing execution overhead.
>
> Also remove __slab_alloc_node() function because it is almost empty.
> The callers of __slab_alloc_node now call ___slab_alloc() directly.
>
> Additional notes:
>
> Previously, when slab_strict_numa was enabled, alloc_from_pcs() and
> __slab_alloc_node() could each resolve the task mempolicy, so
> MPOL_INTERLEAVE or MPOL_WEIGHTED_INTERLEAVE could advance the
> interleave state twice for a single object allocation attempt.
> And each retry will also advance the interleave state.
>
> With this change, the strict NUMA node is resolved once and reused by
> both alloc_from_pcs() and ___slab_alloc() in each retry.
>
> This is a behavior change, but it better matches the intent of
> selecting one policy node for one allocation attempt.
>
> Signed-off-by: Hao Li <hao.li@xxxxxxxxx>

Cool!
Added to slab/for-7.3/misc, will exponse to -next after 7.2-rc1.