diff options
| author | Vlastimil Babka (SUSE) <vbabka@kernel.org> | 2026-06-10 17:40:05 +0200 |
|---|---|---|
| committer | Vlastimil Babka (SUSE) <vbabka@kernel.org> | 2026-06-15 10:50:27 +0200 |
| commit | 5fd1c77e97decf78573843f4ad1ea3ddcc1ea102 (patch) | |
| tree | 25b085b2c5eb08e1cf7fea1cea8b56d5f75730b9 /mm | |
| parent | f09b59ae4414b0dc0929cf04cd8243157e0feab6 (diff) | |
| download | ath-5fd1c77e97decf78573843f4ad1ea3ddcc1ea102.tar.gz | |
mm/slab: stop inlining __slab_alloc_node()
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>
Diffstat (limited to 'mm')
| -rw-r--r-- | mm/slub.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/mm/slub.c b/mm/slub.c index d762cbe5d0407..8845e15cb152e 100644 --- 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); |
