Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

MM Change Slated For Linux 7.4 Yields +22904539.81% In One Metric, More Modest Wins In Others

Дата публикации: 26-09-2026 15:07:42

Queued this week into the slab/for-next Git branch ahead of next month's Linux 7.4 merge window is a memory management change for refilling pre-filled sheaves from the barn. In some cases this yields wild improvements to specific synthetic benchmarks...

Основное содержимое страницы с новостью.

LINUX KERNEL

Queued this week into the slab/for-next Git branch ahead of next month's Linux 7.4 merge window is a memory management change for refilling pre-filled sheaves from the barn. In some cases this yields wild improvements to specific synthetic benchmarks.

Sheaves are the per-CPU, array-based caching layer for the Linux kernel's memory allocator. Sheaves have seen a lot of work since their introduction to the kernel last year and even more optimization work is on the way for Linux 7.4.

Hao Li explained of the memory management code change for refilling prefilled sheaves from the barn:

"Currently, when the prefill API refills a non-full sheaf, it takes the objects from partial slabs and never from the full sheaves in the barn, so once the barn's full list becomes saturated, it stays saturated.

For objects freed via kfree_rcu(), every RCU sheaf then has to be flushed to slabs because the barn's full list has no room.

To fix this, let the sheaf refill from the barn first, and introduce a partial sheaf in the barn, which holds the leftover objects.

Only the prefill path needs the partial sheaf. The generic allocation path (__pcs_replace_empty_main()) exchanges an empty sheaf for a full one from the barn, so nothing is left over. The prefill path refills a sheaf that is not necessarily empty, so taking objects from the barn usually leaves leftovers, and the partial sheaf is where they are kept. refill_sheaf() only takes objects from partial slabs and never involves the partial sheaf.

The sheaf is refilled by copying objects from the partial sheaf, and then from a full sheaf taken from the barn if it is still not full. A sheaf that objects were copied from stays in the barn as the partial sheaf if it still holds objects, or goes on the empty list if it is empty. The sheaf being refilled is never replaced.

The gain comes from two sides: every full sheaf taken out makes room on the barn's full list for a future RCU sheaf, and refilling from the barn is cheaper than refilling from partial slabs under list_lock."

The benchmarks with the patch show an overall 24% improvement to a will-it-scale mmap1 test. The impact in the barn_get performance is +22904539.81%, barn_put is +21422544.07%, and the other metrics tend to be double-digit percentage improvements over the baseline.

benchmark results

Quite an impact out of 81 lines of new code. The patch is destined for the Linux 7.4 merge window happening in late October.

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Intel Delivers A Significant Memory Hotplugging Performance Optimization For Linux04.5227-09-2026
2Linux Kernel's LZ4 Compression Code Being Resynced For Better Performance & Cleanliness09.3127-09-2026
3Improved GPU Reset Coming For Raspberry Pi Boards With Linux 7.4011.8827-09-2026
4AMD Sends Out New Linux Patches Further Enhancing HDMI 2.1 Reliability010.1125-09-2026
5Patches Posted For Enabling NVMe On All Apple M3 Based SoCs With Linux06.2225-09-2026
6New Patch Series Working Toward DRBD 9 Support In The Linux Kernel07.927-09-2026
7AI Bug Fixes, Crescent Island Power Brake & Nouveau Fixes For Linux 7.3-rc5 DRM06.1726-09-2026
8Approaching A 10 Second Linux Kernel Build05.0325-09-2026
9New FUTEX Syscalls Back To Being Worked On For Helping Valve's ARM64 Gaming Ambitions08.6525-09-2026
10New Linux Patches For Supporting Lenovo ThinkPad X1 Carbon G14's Second Camera010.8127-09-2026

Классификация: Экономика. Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 14.6. Источник: www.phoronix.com.