Re: [RFC PATCH v0 0/3] pghot: x86: IBS Memory Profiler for hot page promotion

From: Bharata B Rao

Date: Thu Sep 24 2026 - 02:28:08 EST


On 24-Sep-26 11:52 AM, Bharata B Rao wrote:
>
> Detailed per-benchmark tables (throughput/latency + vmstat and pghot
> promotion counters) are posted as replies to this thread.

Micro-benchmark

Multi-threaded application with 64 threads that access memory(8G) at
4K granularity repetitively and randomly. The number of accesses per
thread and the randomness pattern for each thread are fixed beforehand.
The accesses are divided into stores and loads in the ratio of 50:50.

Benchmark threads run on Node 0, while memory is initially provisioned on
CXL node 2 before the accesses start.

Repetitive accesses results in lowertier pages becoming hot and kmigrated
detecting and migrating them. The benchmark score is the time taken to
finish the accesses in microseconds. The sooner it finishes the better it is.
All the numbers shown below are average of 3 runs.

Table 1: Completion time (lower is better), avg of 3 runs
64 threads, random 4K access over 8G, mem on CXL node 2, cpu node 0

Config Time (us) Time (s) Speedup
---------------------------------------
C1 98,485,716 98.5 1.00x
C2 38,636,402 38.6 2.55x
C3 44,270,350 44.3 2.22x

Speedup = C1 (base-NUMAB0) time / config time (>1.00x is faster)

Legend:
C1 = base kernel, NUMAB0 (hot page promotion disabled)
C2 = base kernel, NUMAB2 (hot page promotion enabled)
C3 = pghot kernel, IBS profiler, pghot_freq_threshold=1 (NUMAB0)

Table 2: Page migration / hotness vmstat counters (avg of 3 runs)
'-' = counter not present for that kernel/config

vmstat counter C1 C2 C3
------------------------------------------------------------
pgpromote_success 0 2,097,152 1,981,045
pgpromote_candidate_nrl 0 2,412,042 1,981,045
numa_pages_migrated 0 2,097,152 1,981,045
numa_pte_updates 0 2,097,152 0
numa_hint_faults 0 2,412,042 0
pghot_recorded_accesses - - 1,985,269
pghot_reported_hintfaults - - 0
pghot_reported_hwhints - - 5,991,177
hwhint_total_events - - 5,991,177
hwhint_dram_accesses - - 3,716,462
hwhint_extmem_accesses - - 1,886,078
hwhint_cache_accesses - - 0
hwhint_useful_events - - 5,991,177
hwhint_dropped_events - - 0

Legend:
C1 = base kernel, NUMAB0 (hot page promotion disabled)
C2 = base kernel, NUMAB2 (hot page promotion enabled)
C3 = pghot kernel, IBS profiler, pghot_freq_threshold=1 (NUMAB0)