]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
Merge branch 'slab/for-7.0/sheaves' into slab/for-next
authorVlastimil Babka <vbabka@suse.cz>
Sun, 8 Feb 2026 18:17:42 +0000 (19:17 +0100)
committerVlastimil Babka <vbabka@suse.cz>
Tue, 10 Feb 2026 08:10:00 +0000 (09:10 +0100)
commit815c8e35511d0b9a214e9f644983fe477af9d5cb
treecbbb5c37b065a9595a207eca145ceb257ea5fdc6
parent98e99fc4ad4b30dd28c09ba19686ec583af345b4
parent40fd0acc45d06709b3b1eea77e50e13f4145dff0
Merge branch 'slab/for-7.0/sheaves' into slab/for-next

Merge series "slab: replace cpu (partial) slabs with sheaves".

The percpu sheaves caching layer was introduced as opt-in but the goal
was to eventually move all caches to them. This is the next step,
enabling sheaves for all caches (except the two bootstrap ones) and then
removing the per cpu (partial) slabs and lots of associated code.

Besides the lower locking overhead and much more likely fastpath when
freeing, this removes the rather complicated code related to the cpu
slab lockless fastpaths (using this_cpu_try_cmpxchg128/64) and all its
complications for PREEMPT_RT or kmalloc_nolock().

The lockless slab freelist+counters update operation using
try_cmpxchg128/64 remains and is crucial for freeing remote NUMA objects
and to allow flushing objects from sheaves to slabs mostly without the
node list_lock.

Link: https://lore.kernel.org/all/20260123-sheaves-for-all-v4-0-041323d506f7@suse.cz/
include/linux/slab.h
mm/slab.h
mm/slab_common.c
mm/slub.c