News: 0001451955

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Linux 6.9 Delivers More Improvements To The SLUB Allocator

([Linux Kernel] 3 Hours Ago SLAB)


[1]Linux 6.8 dropped the SLAB allocator after its deprecation in v6.5 and now just leaving SLUB for all allocation duties. For Linux 6.9 there is continued cleaning from that SLAB removal as well as making more SLUB improvements.

Vlastimil Babka submitted the SLUB (SLAB) changes for Linux 6.9 and highlighted them as:

- Freelist loading optimization (Chengming Zhou)

When the per-cpu slab is depleted and a new one loaded from the cpu partial list, optimize the loading to avoid an irq enable/disable cycle. This results in a 3.5% performance improvement on the "perf bench sched messaging" test.

- Kernel boot parameters cleanup after SLAB removal (Xiongwei Song)

Due to two different main slab implementations we've had boot parameters prefixed either slab_ and slub_ with some later becoming an alias as both implementations gained the same functionality (i.e. slab_nomerge vs slub_nomerge). In order to eventually get rid of the implementation-specific names, the canonical and documented parameters are now all prefixed slab_ and the slub_ variants become deprecated but still working aliases.

- SLAB_ kmem_cache creation flags cleanup (Vlastimil Babka)

The flags had hardcoded #define values which became tedious and error-prone when adding new ones. Assign the values via an enum that takes care of providing unique bit numbers. Also deprecate SLAB_MEM_SPREAD which was only used by SLAB, so it's a no-op since SLAB removal. Assign it an explicit zero value. The removals of the flag usage are handled independently in the respective subsystems, with a final removal of any leftover usage planned for the next release.

- Misc cleanups and fixes (Chengming Zhou, Xiaolei Wang, Zheng Yejian)

Includes removal of unused code or function parameters and a fix of a memleak.

[2]This pull provides the full list of patches making up this pull request of code since merged for Linux 6.9.



[1] https://www.phoronix.com/news/Linux-6.8-SLAB-SLUB-Changes

[2] https://lore.kernel.org/lkml/c021631d-29e5-432f-bfcd-1d75ec28d065@suse.cz/T/#u



phoronix

Paralysis through analysis.