]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mm/slab: stop inlining __slab_alloc_node()
authorVlastimil Babka (SUSE) <vbabka@kernel.org>
Wed, 10 Jun 2026 15:40:05 +0000 (17:40 +0200)
committerVlastimil Babka (SUSE) <vbabka@kernel.org>
Mon, 15 Jun 2026 08:50:27 +0000 (10:50 +0200)
With sheaves, this is no longer part of the allocation fastpath.  For
the same reason, also mark the call to it from slab_alloc_node() as
unlikely().

Reviewed-by: Harry Yoo (Oracle) <harry@kernel.org>
Reviewed-by: Hao Li <hao.li@linux.dev>
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Link: https://patch.msgid.link/20260610-slab_alloc_flags-v2-3-7190909db118@kernel.org
Signed-off-by: Vlastimil Babka (SUSE) <vbabka@kernel.org>
mm/slub.c

index d762cbe5d0407071a52ac274b2aaddf69fd6aadf..8845e15cb152e5600232b638c79f751450fde903 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -4519,8 +4519,8 @@ success:
        return object;
 }
 
-static __always_inline void *__slab_alloc_node(struct kmem_cache *s,
-               gfp_t gfpflags, int node, unsigned long addr, size_t orig_size)
+static void *__slab_alloc_node(struct kmem_cache *s, gfp_t gfpflags, int node,
+                              unsigned long addr, size_t orig_size)
 {
        void *object;
 
@@ -4926,7 +4926,7 @@ static __fastpath_inline void *slab_alloc_node(struct kmem_cache *s, struct list
 
        object = alloc_from_pcs(s, gfpflags, node);
 
-       if (!object)
+       if (unlikely(!object))
                object = __slab_alloc_node(s, gfpflags, node, addr, orig_size);
 
        maybe_wipe_obj_freeptr(s, object);