[<prev] [next>] [day] [month] [year] [list]
Message-ID: <5dc1b53d-29fb-42f6-9fff-d6b42da17a7f@suse.cz>
Date: Tue, 30 Sep 2025 08:29:38 +0200
From: Vlastimil Babka <vbabka@...e.cz>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Harry Yoo <harry.yoo@...cle.com>, David Rientjes <rientjes@...gle.com>,
Christoph Lameter <cl@...two.org>, Roman Gushchin
<roman.gushchin@...ux.dev>, "linux-mm@...ck.org" <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>, Matthew Wilcox <willy@...radead.org>,
Pedro Falcato <pfalcato@...e.de>, Alexei Starovoitov <ast@...nel.org>,
"Liam R. Howlett" <Liam.Howlett@...cle.com>,
Suren Baghdasaryan <surenb@...gle.com>
Subject: [GIT PULL] slab updates for 6.18
Hi Linus,
please pull the latest slab updates from:
git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git tags/slab-for-6.18
This time we have two rather large features - a new percpu caching scheme and
re-entrant kmalloc_nolock(), along with the usual fixes and cleanups.
To avoid conflicts with mm tree, the patches from Lorenzo and Qianfeng are part
of this pull although normally they would be in mm tree. There should be no
conflicts.
Thanks,
Vlastimil
======================================
* A new layer for caching objects for allocation and free via percpu arrays
called sheaves. The aim is to combine the good parts of SLAB (lower-overhead
and simpler percpu caching, compared to SLUB) without the past issues with
arrays for freeing remote NUMA node objects and their flushing. It also
allows more efficient kfree_rcu(), and cheaper object preallocations for
cases where the exact number of objects is unknown, but an upper bound is.
Currently VMAs and maple nodes are using this new caching, with a plan to
enable it for all caches and remove the complex SLUB fastpath based on cpu
(partial) slabs and this_cpu_cmpxchg_double(). (Vlastimil Babka, with Liam
Howlett and Pedro Falcato for the maple tree changes)
* Re-entrant kmalloc_nolock(), which allows opportunistic allocations from NMI
and tracing/kprobe contexts. Building on prior page allocator and memcg
changes, it will result in removing BPF-specific caches on top of slab.
(Alexei Starovoitov)
* Various fixes and cleanups. (Kuan-Wei Chiu, Matthew Wilcox, Suren
Baghdasaryan, Ye Liu)
----------------------------------------------------------------
Alexei Starovoitov (7):
locking/local_lock: Expose dep_map in local_trylock_t.
locking/local_lock: Introduce local_lock_is_locked().
mm: Allow GFP_ACCOUNT to be used in alloc_pages_nolock().
mm: Introduce alloc_frozen_pages_nolock()
slab: Make slub local_(try)lock more precise for LOCKDEP
slab: Reuse first bit for OBJEXTS_ALLOC_FAIL
slab: Introduce kmalloc_nolock() and kfree_nolock().
Kuan-Wei Chiu (2):
mm/slub: Fix cmp_loc_by_count() to return 0 when counts are equal
mm/slub: Replace sort_r() with sort() for debugfs stack trace sorting
Liam R. Howlett (8):
maple_tree: Drop bulk insert support
tools/testing/vma: Implement vm_refcnt reset
tools/testing: Add support for changes to slab for sheaves
testing/radix-tree/maple: Hack around kfree_rcu not existing
tools/testing: Add support for prefilled slab sheafs
maple_tree: Prefilled sheaf conversion and testing
maple_tree: Add single node allocation support to maple state
maple_tree: Convert forking to use the sheaf interface
Lorenzo Stoakes (1):
tools/testing/vma: clean up stubs in vma_internal.h
Matthew Wilcox (Oracle) (1):
slab: Remove dead code in free_consistency_checks()
Pedro Falcato (2):
maple_tree: Use kfree_rcu in ma_free_rcu
maple_tree: Replace mt_free_one() with kfree()
Qianfeng Rong (1):
maple_tree: remove redundant __GFP_NOWARN
Suren Baghdasaryan (2):
slab: prevent warnings when slab obj_exts vector allocation fails
slab: mark slab->obj_exts allocation failures unconditionally
Vlastimil Babka (17):
slab: wrap debug slab validation in validate_slab_ptr()
slab: move validate_slab_ptr() from check_slab() to its callers
slab: move validate_slab_ptr() from alloc_consistency_checks() to its caller
slab: validate slab before using it in alloc_single_from_partial()
slab: don't validate slab pointer in free_debug_processing()
slab: simplify init_kmem_cache_nodes() error handling
slab: add opt-in caching layer of percpu sheaves
slab: add sheaf support for batching kfree_rcu() operations
slab: sheaf prefilling for guaranteed allocations
slab: determine barn status racily outside of lock
slab: skip percpu sheaves for remote object freeing
slab: allow NUMA restricted allocations to use percpu sheaves
mm, vma: use percpu sheaves for vm_area_struct cache
maple_tree: use percpu sheaves for maple_node_cache
tools/testing: include maple-shim.c in maple.c
Merge series "SLUB percpu sheaves"
Merge series "slab: Re-entrant kmalloc_nolock()"
Ye Liu (1):
mm/slub: Refactor note_cmpxchg_failure for better readability
include/linux/gfp.h | 2 +-
include/linux/kasan.h | 13 +-
include/linux/local_lock.h | 2 +
include/linux/local_lock_internal.h | 16 +-
include/linux/maple_tree.h | 6 +-
include/linux/memcontrol.h | 12 +-
include/linux/rtmutex.h | 10 +
include/linux/slab.h | 51 +
kernel/bpf/stream.c | 2 +-
kernel/bpf/syscall.c | 2 +-
kernel/locking/rtmutex_common.h | 9 -
lib/maple_tree.c | 667 +----
lib/test_maple_tree.c | 137 -
mm/Kconfig | 1 +
mm/internal.h | 4 +
mm/kasan/common.c | 5 +-
mm/page_alloc.c | 55 +-
mm/slab.h | 20 +-
mm/slab_common.c | 37 +-
mm/slub.c | 5479 ++++++++++++++++++++++++-----------
mm/vma_init.c | 1 +
tools/include/linux/slab.h | 165 +-
tools/testing/radix-tree/maple.c | 514 +---
tools/testing/shared/linux.c | 120 +-
tools/testing/shared/maple-shared.h | 11 +
tools/testing/shared/maple-shim.c | 7 +
tools/testing/vma/vma_internal.h | 259 +-
27 files changed, 4462 insertions(+), 3145 deletions(-)
Powered by blists - more mailing lists