Linux mm patchset unifies hot-page promotion for tiered memory
AMD's pghot v8 consolidates access tracking from hint faults and hardware samplers, then drives batched promotions via per-node kernel threads.
AMD engineer Bharata B Rao has posted version 8 of a Linux memory-management series that introduces pghot, a subsystem for tracking frequently accessed pages and promoting them from slower memory tiers to faster ones.
On machines that mix DRAM with CPU-less CXL or other lower-tier memory, hot pages left on the slow tier cost bandwidth and latency. Today several kernel paths detect accesses independently, and the existing NUMA-balancing tiering mode both classifies hot pages and migrates them from inside the scheduler. pghot separates those roles. Sources report accesses through a common API, the subsystem stores hotness at PFN granularity, and a dedicated kmigrated thread per lower-tier node performs asynchronous, batched promotion.
Supported sources include NUMA hint faults and, on AMD Zen6 and later CPUs, the IBS Memory Profiler hardware sampler. The hardware path can feed samples without page-table scanning. Default mode keeps a one-byte hotness record per lower-tier PFN; an optional precision mode expands that to four bytes so each page can carry its own target node and finer frequency and recency fields, useful on systems with multiple top-tier nodes.
The series also lifts promotion rate-limiting and dynamic-threshold logic out of the scheduler so any hotness source can reuse it, and exposes sysctl knobs for frequency windows, thresholds, enabled sources, and the default promotion target.
On three-node DRAM-plus-CXL systems, hint-fault-driven pghot matched mainline NUMAB2 tiering (about 2.26x throughput over no tiering on a modified NAS BT run), while the IBS hardware path delivered roughly 2.13x without NUMA scanning. A multi-threaded microbenchmark of repetitive random 4K accesses showed similar gains once kmigrated moved hot pages off CXL.