linux/fs/ext4
Linus Torvalds 148f95f75c slab updates for 7.0
-----BEGIN PGP SIGNATURE-----
 
 iQFPBAABCAA5FiEEe7vIQRWZI0iWSE3xu+CwddJFiJoFAmmK68UbFIAAAAAABAAO
 bWFudTIsMi41KzEuMTEsMiwyAAoJELvgsHXSRYiamM8H/0eOKSvZG/C/HdTm36cy
 pVjOjgX9KmlHoeH1dOMjqgL2KfOIBis8j1GY0Q/qF1a86uzQa6uuz4XdmJeTUkEE
 YfzwOdaLIR0U6R/gIH9YPfyU9h3VBLUNtotDculntSO3ZgwY5QUHQHz+ROnVG5SU
 MSQ2oshSRkh06LRIlvbd0kLax8vZy8UjfYPonF33+XRya17nIY6V2DvqC0MDuEcM
 jWvbQfm5HTamTAlSV4bmJw+U/FehEdpC4U0ulsAtQILGpJvHCwqDGCNQRFkzcsaM
 yhi1JLFCZcoHqbQycZMNAypPERfIp8O5thSU6xU2AP/cNl2scR/7/MSuWOvjKBv4
 pKU=
 =u52A
 -----END PGP SIGNATURE-----

Merge tag 'slab-for-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab

Pull slab updates from Vlastimil Babka:

 - The percpu sheaves caching layer was introduced as opt-in in 6.18 and
   now we enable it for all caches and remove the previous cpu (partial)
   slab caching mechanism.

   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 (Vlastimil Babka)

 - Eliminate slabobj_ext metadata overhead when possible. Instead of
   using kmalloc() to allocate the array for memcg and/or allocation
   profiling tag pointers, use leftover space in a slab or per-object
   padding due to alignment (Harry Yoo)

 - Various followup improvements to the above (Hao Li)

* tag 'slab-for-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab: (39 commits)
  slub: let need_slab_obj_exts() return false if SLAB_NO_OBJ_EXT is set
  mm/slab: only allow SLAB_OBJ_EXT_IN_OBJ for unmergeable caches
  mm/slab: place slabobj_ext metadata in unused space within s->size
  mm/slab: move [__]ksize and slab_ksize() to mm/slub.c
  mm/slab: save memory by allocating slabobj_ext array from leftover
  mm/memcontrol,alloc_tag: handle slabobj_ext access under KASAN poison
  mm/slab: use stride to access slabobj_ext
  mm/slab: abstract slabobj_ext access via new slab_obj_ext() helper
  ext4: specify the free pointer offset for ext4_inode_cache
  mm/slab: allow specifying free pointer offset when using constructor
  mm/slab: use unsigned long for orig_size to ensure proper metadata align
  slub: clarify object field layout comments
  mm/slab: avoid allocating slabobj_ext array from its own slab
  slub: avoid list_lock contention from __refill_objects_any()
  mm/slub: cleanup and repurpose some stat items
  mm/slub: remove DEACTIVATE_TO_* stat items
  slab: remove frozen slab checks from __slab_free()
  slab: update overview comments
  slab: refill sheaves from all nodes
  slab: remove unused PREEMPT_RT specific macros
  ...
2026-02-11 14:12:50 -08:00
..
.kunitconfig
Kconfig ext4: remove obsolete EXT3 config options 2025-09-25 14:47:05 -04:00
Makefile
acl.c
acl.h
balloc.c fs/ext4: fix typo in comment 2025-11-26 17:13:34 -05:00
bitmap.c
block_validity.c
crypto.c ext4: move crypt info pointer to fs-specific part of inode 2025-08-21 13:58:07 +02:00
dir.c ext4: add setlease file operation 2026-01-12 10:55:45 +01:00
ext4.h uapi: promote EFSCORRUPTED and EUCLEAN to errno.h 2026-01-13 09:58:01 +01:00
ext4_extents.h
ext4_jbd2.c ext4: make data=journal support large block size 2025-11-28 22:35:28 -05:00
ext4_jbd2.h
extents.c ext4: add EXT4_LBLK_TO_B macro for logical block to bytes conversion 2025-11-28 22:35:27 -05:00
extents_status.c ext4: make ext4_es_lookup_extent() pass out the extent seq counter 2025-11-06 10:44:39 -05:00
extents_status.h ext4: make ext4_es_lookup_extent() pass out the extent seq counter 2025-11-06 10:44:39 -05:00
fast_commit.c ext4: increase IO priority of fastcommit 2025-09-25 14:56:31 -04:00
fast_commit.h
file.c ext4: add setlease file operation 2026-01-12 10:55:45 +01:00
fsmap.c ext4: correctly handle queries for metadata mappings 2025-09-25 23:04:48 -04:00
fsmap.h
fsync.c
hash.c ext4: make error code in __ext4fs_dirhash() consistent. 2025-11-06 10:32:33 -05:00
ialloc.c ext4: clear i_state_flags when alloc inode 2025-11-26 17:06:09 -05:00
indirect.c ext4: add ext4_sb_bread_nofail() helper function for ext4_free_branches() 2025-09-25 14:36:54 -04:00
inline.c ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock() 2025-11-26 17:06:24 -05:00
inode-test.c
inode.c New features and improvements for the ext4 file system 2025-12-03 20:37:15 -08:00
ioctl.c ext4: convert to new fserror helpers 2026-01-13 09:58:01 +01:00
mballoc-test.c
mballoc.c fs: use min() or umin() instead of min_t() 2025-12-15 14:33:37 +01:00
mballoc.h
migrate.c
mmp.c ext4: use super write guard in write_mmp_block() 2025-11-05 22:52:15 +01:00
move_extent.c ext4: add missing down_write_data_sem in mext_move_extent(). 2026-01-18 11:23:10 -05:00
namei.c ext4: add EXT4_LBLK_TO_B macro for logical block to bytes conversion 2025-11-28 22:35:27 -05:00
orphan.c New features and improvements for the ext4 file system 2025-12-03 20:37:15 -08:00
page-io.c blk-crypto: handle the fallback above the block layer 2026-01-11 12:55:41 -07:00
readpage.c blk-crypto: handle the fallback above the block layer 2026-01-11 12:55:41 -07:00
resize.c fs: use min() or umin() instead of min_t() 2025-12-15 14:33:37 +01:00
super.c slab updates for 7.0 2026-02-11 14:12:50 -08:00
symlink.c
sysfs.c ext4: enable block size larger than page size 2025-11-28 22:35:28 -05:00
truncate.h
verity.c ext4: add EXT4_LBLK_TO_B macro for logical block to bytes conversion 2025-11-28 22:35:27 -05:00
xattr.c ext4: fix iloc.bh leak in ext4_xattr_inode_update_ref 2026-01-18 11:23:10 -05:00
xattr.h
xattr_hurd.c
xattr_security.c
xattr_trusted.c
xattr_user.c