Explicit Memory Tiers May Be Ready For Linux 6.1
In addition to MGLRU being planned for Linux 6.1 as a big improvement to the page reclamation code and nice performance benefits, another memory management related change that has been floating on Andrew Morton's "mm-unstable" branch recently has been supporting explicit memory tiers and work around improving the Linux kernel's tiered memory support.
These patches stem from upstream kernel discussions months ago around possible improvements to the memory tiering with some memory devices not being placed in the best or most relevant tier as well as the lack of user-space information around the memory tier hierarchy.
This tiered memory support is primarily about Linux servers where there could be multiple classes of memory and about Linux recognizing that and allocating the fastest memory for the most important tasks and being able to demote to slower memory tiers for less important allocations, etc. While much of the Linux memory tiering infrastructure was started by Intel for Optane DC Persistent Memory that is now being abandoned, tiered memory is still even more important for forthcoming servers with Compute Express Link (CXL), some Xeon Sapphire Rapids SKUs coming with integrated HBM2 memory, and other innovations leading to multiple classes/tiers of addressable RAM on systems.
This pending Linux support for explicit memory tiers was designed with it in mind that a memory-only NUMA node could have a high performance memory device that should be in a higher tier, HBM memory NUMA nodes should always be in the top tier, dealing with memory tier changes stemming from CPU hot adding/removal, and better control over the demotion order.
This patch in mm-unstable goes over the new explicit memory tiers design of the forthcoming code. The other patches are also queued up as part of this Git branch for overhauling the memory demotion code. Given these patches are now being kicked around in Andrew Morton's memory management testing area, if all goes well we could see these memory tier improvements likely merged for Linux 6.1.
These patches stem from upstream kernel discussions months ago around possible improvements to the memory tiering with some memory devices not being placed in the best or most relevant tier as well as the lack of user-space information around the memory tier hierarchy.
This tiered memory support is primarily about Linux servers where there could be multiple classes of memory and about Linux recognizing that and allocating the fastest memory for the most important tasks and being able to demote to slower memory tiers for less important allocations, etc. While much of the Linux memory tiering infrastructure was started by Intel for Optane DC Persistent Memory that is now being abandoned, tiered memory is still even more important for forthcoming servers with Compute Express Link (CXL), some Xeon Sapphire Rapids SKUs coming with integrated HBM2 memory, and other innovations leading to multiple classes/tiers of addressable RAM on systems.
This pending Linux support for explicit memory tiers was designed with it in mind that a memory-only NUMA node could have a high performance memory device that should be in a higher tier, HBM memory NUMA nodes should always be in the top tier, dealing with memory tier changes stemming from CPU hot adding/removal, and better control over the demotion order.
This patch in mm-unstable goes over the new explicit memory tiers design of the forthcoming code. The other patches are also queued up as part of this Git branch for overhauling the memory demotion code. Given these patches are now being kicked around in Andrew Morton's memory management testing area, if all goes well we could see these memory tier improvements likely merged for Linux 6.1.
4 Comments