• Linus Torvalds's avatar
    Merge tag 'slab-for-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · 893660b0
    Linus Torvalds authored
    Pull slab updates from Vlastimil Babka:
    
     - SLOB deprecation and SLUB_TINY
    
       The SLOB allocator adds maintenance burden and stands in the way of
       API improvements [1]. Deprecate it by renaming the config option (to
       make users notice) to CONFIG_SLOB_DEPRECATED with updated help text.
       SLUB should be used instead as SLAB will be the next on the removal
       list.
    
       Based on reports from a riscv k210 board with 8MB RAM, add a
       CONFIG_SLUB_TINY option to minimize SLUB's memory usage at the
       expense of scalability. This has resolved the k210 regression [2] so
       in case there are no others (that wouldn't be resolvable by further
       tweaks to SLUB_TINY) plan is to remove SLOB in a few cycles.
    
       Existing defconfigs with CONFIG_SLOB are converted to
       CONFIG_SLUB_TINY.
    
     - kmalloc() slub_debug redzone improvements
    
       A series from Feng Tang that builds on the tracking or requested size
       for kmalloc() allocations (for caches with debugging enabled) added
       in 6.1, to make redzone checks consider the requested size and not
       the rounded up one, in order to catch more subtle buffer overruns.
       Includes new slub_kunit test.
    
     - struct slab fields reordering to accomodate larger rcu_head
    
       RCU folks would like to grow rcu_head with debugging options, which
       breaks current struct slab layout's assumptions, so reorganize it to
       make this possible.
    
     - Miscellaneous improvements/fixes:
         - __alloc_size checking compiler workaround (Kees Cook)
         - Optimize and cleanup SLUB's sysfs init (Rasmus Villemoes)
         - Make SLAB compatible with PROVE_RAW_LOCK_NESTING (Jiri Kosina)
         - Correct SLUB's percpu allocation estimates (Baoquan He)
         - Re-enableS LUB's run-time failslab sysfs control (Alexander Atanasov)
         - Make tools/vm/slabinfo more user friendly when not run as root (Rong Tao)
         - Dead code removal in SLUB (Hyeonggon Yoo)
    
    * tag 'slab-for-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab: (31 commits)
      mm, slob: rename CONFIG_SLOB to CONFIG_SLOB_DEPRECATED
      mm, slub: don't aggressively inline with CONFIG_SLUB_TINY
      mm, slub: remove percpu slabs with CONFIG_SLUB_TINY
      mm, slub: split out allocations from pre/post hooks
      mm/slub, kunit: Add a test case for kmalloc redzone check
      mm/slub, kunit: add SLAB_SKIP_KFENCE flag for cache creation
      mm, slub: refactor free debug processing
      mm, slab: ignore SLAB_RECLAIM_ACCOUNT with CONFIG_SLUB_TINY
      mm, slub: don't create kmalloc-rcl caches with CONFIG_SLUB_TINY
      mm, slub: lower the default slub_max_order with CONFIG_SLUB_TINY
      mm, slub: retain no free slabs on partial list with CONFIG_SLUB_TINY
      mm, slub: disable SYSFS support with CONFIG_SLUB_TINY
      mm, slub: add CONFIG_SLUB_TINY
      mm, slab: ignore hardened usercopy parameters when disabled
      slab: Remove special-casing of const 0 size allocations
      slab: Clean up SLOB vs kmalloc() definition
      mm/sl[au]b: rearrange struct slab fields to allow larger rcu_head
      mm/migrate: make isolate_movable_page() skip slab pages
      mm/slab: move and adjust kernel-doc for kmem_cache_alloc
      mm/slub, percpu: correct the calculation of early percpu allocation size
      ...
    893660b0
migrate.c 57.8 KB