lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ