From: Bharata B Rao <bharata@amd.com>
To: <linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>
Cc: <Jonathan.Cameron@huawei.com>, <dave.hansen@intel.com>,
<gourry@gourry.net>, <mgorman@techsingularity.net>,
<mingo@redhat.com>, <peterz@infradead.org>,
<raghavendra.kt@amd.com>, <riel@surriel.com>,
<rientjes@google.com>, <sj@kernel.org>, <weixugc@google.com>,
<willy@infradead.org>, <ying.huang@linux.alibaba.com>,
<ziy@nvidia.com>, <dave@stgolabs.net>, <nifan.cxl@gmail.com>,
<xuezhengchu@huawei.com>, <yiannis@zptcorp.com>,
<akpm@linux-foundation.org>, <david@kernel.org>,
<byungchul@sk.com>, <kinseyho@google.com>,
<joshua.hahnjy@gmail.com>, <yuanchu@google.com>,
<balbirs@nvidia.com>, <alok.rathore@samsung.com>,
<shivankg@amd.com>, <donettom@linux.ibm.com>
Subject: Re: [PATCH v8 0/8] mm: Hot page tracking and promotion infrastructure - microbenchmark numbers
Date: Tue, 28 Jul 2026 11:25:57 +0530 [thread overview]
Message-ID: <c39af956-0ce2-4bec-a1ef-86cc5127005c@amd.com> (raw)
In-Reply-To: <20260728054356.291998-1-bharata@amd.com>
Microbenchmark
==============
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: Benchmark 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 97,165,273 97.2 1.00x
C2 40,378,842 40.4 2.41x
C3 95,431,823 95.4 1.02x
C4 40,455,945 40.5 2.40x
C5 41,289,646 41.3 2.35x
C6 64,260,194 64.3 1.51x
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, NUMAB0 (hint faults source disabled)
C4 = pghot kernel, NUMAB2 (hint faults source enabled)
C5 = pghot kernel, IBS Memory profiler, pghot_freq_threshold=1 (NUMAB0)
C6 = pghot kernel, IBS Memory profiler, pghot_freq_threshold=2 (NUMAB0)
Table 2: Page migration / hotness vmstat counters (avg of 3 runs)
'-' = counter not present for that kernel/config
ctr C1 C2 C3 C4 C5 C6
-----------------------------------------------------------------------
M1 0 2,097,152 0 2,097,152 1,966,188 1,444,783
M2 0 2,283,787 0 2,097,152 1,966,188 1,444,783
M3 0 2,097,152 0 2,097,152 1,966,188 1,444,783
M4 0 2,097,152 0 2,097,152 0 0
M5 0 2,283,787 0 2,097,152 0 0
M6 - - 0 2,097,152 1,968,079 3,508,998
M7 - - 0 2,097,152 0 0
M8 - - 0 0 5,654,097 5,422,763
M9 - - 0 0 5,654,097 5,422,763
M10 - - 0 0 3,439,001 1,701,889
M11 - - 0 0 1,879,453 3,105,182
M12 - - 0 0 5,654,097 5,422,763
M13 - - 0 0 0 0
Counter legend:
M1 = pgpromote_success
M2 = pgpromote_candidate_nrl
M3 = numa_pages_migrated
M4 = numa_pte_updates
M5 = numa_hint_faults
M6 = pghot_recorded_accesses
M7 = pghot_recorded_hintfaults
M8 = pghot_recorded_hwhints
M9 = hwhint_total_events
M10 = hwhint_dram_accesses
M11 = hwhint_extmem_accesses
M12 = hwhint_useful_events
M13 = hwhint_dropped_events
Key observations
================
- The base NUMAB0 vs NUMAB2 numbers clearly show the benefit of promotion.
- pghot-hintfault matches the base tiering case both in speedup and number
of promottions.
- pghot-hwhint also matches the base tiering case both in speedup and
number of promotions.
next prev parent reply other threads:[~2026-07-28 5:56 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-28 5:43 [PATCH v8 0/8] mm: Hot page tracking and promotion infrastructure Bharata B Rao
2026-07-28 5:43 ` [PATCH v8 1/8] mm: migrate: Allow misplaced migration without VMA Bharata B Rao
2026-07-28 5:43 ` [PATCH v8 2/8] mm: migrate: Add promote_misplaced_memcg_folios() Bharata B Rao
2026-07-28 5:43 ` [PATCH v8 3/8] mm: Hot page tracking and promotion - pghot Bharata B Rao
2026-07-28 5:43 ` [PATCH v8 4/8] mm: pghot: Precision mode for pghot Bharata B Rao
2026-07-28 5:43 ` [PATCH v8 5/8] mm: sched: move NUMA balancing tiering promotion to pghot Bharata B Rao
2026-07-28 5:43 ` [PATCH v8 6/8] x86/ibs: Move IBS caps definitions into its own header Bharata B Rao
2026-07-28 5:43 ` [PATCH v8 7/8] x86/mm/ibs: In-kernel driver for AMD IBS Memory Profiler Bharata B Rao
2026-07-28 5:43 ` [PATCH v8 8/8] x86/mm/ibs: Add runtime controls for IBS memprofiler Bharata B Rao
2026-07-28 5:55 ` Bharata B Rao [this message]
2026-07-28 5:59 ` [PATCH v8 0/8] mm: Hot page tracking and promotion infrastructure - NAS BT Bharata B Rao
2026-07-28 6:02 ` [PATCH v8 0/8] mm: Hot page tracking and promotion infrastructure - Graph500 Bharata B Rao
2026-07-28 6:05 ` [PATCH v8 0/8] mm: Hot page tracking and promotion infrastructure - redis-memtier Bharata B Rao
2026-07-28 6:17 ` [PATCH v8 0/8] mm: Hot page tracking and promotion infrastructure - llama-bench Bharata B Rao
2026-07-28 18:14 ` [PATCH v8 0/8] mm: Hot page tracking and promotion infrastructure Andrew Morton
2026-07-28 18:24 ` Matthew Wilcox
2026-07-28 18:57 ` Gregory Price
2026-07-28 19:20 ` David Hildenbrand (Arm)
2026-07-28 19:59 ` Gregory Price
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c39af956-0ce2-4bec-a1ef-86cc5127005c@amd.com \
--to=bharata@amd.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=alok.rathore@samsung.com \
--cc=balbirs@nvidia.com \
--cc=byungchul@sk.com \
--cc=dave.hansen@intel.com \
--cc=dave@stgolabs.net \
--cc=david@kernel.org \
--cc=donettom@linux.ibm.com \
--cc=gourry@gourry.net \
--cc=joshua.hahnjy@gmail.com \
--cc=kinseyho@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mingo@redhat.com \
--cc=nifan.cxl@gmail.com \
--cc=peterz@infradead.org \
--cc=raghavendra.kt@amd.com \
--cc=riel@surriel.com \
--cc=rientjes@google.com \
--cc=shivankg@amd.com \
--cc=sj@kernel.org \
--cc=weixugc@google.com \
--cc=willy@infradead.org \
--cc=xuezhengchu@huawei.com \
--cc=yiannis@zptcorp.com \
--cc=ying.huang@linux.alibaba.com \
--cc=yuanchu@google.com \
--cc=ziy@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox