Gentle Ping On 11-08-2026 00:18, Swapnil Sapkal wrote:
The MBM (Memory Bandwidth Monitoring) and MBA (Memory Bandwidth Allocation) resctrl selftests validate the bandwidth numbers reported by resctrl against the memory controller performance counters. Today this only works on Intel, where the counters are the iMC (Integrated Memory Controller) PMUs and the tests are gated behind an ARCH_INTEL vendor check.This series teaches the tests about the AMD UMC (Unified Memory Controller) PMUs and enables MBM and MBA on AMD. The work is done in a few steps: 1. Rename the Intel specific imc/IMC identifiers to the generic mc/MC so the code can serve both vendors. 2. Detect the vendor and select the memory controller PMU sysfs name accordingly, keeping the rest of the code generic. 3. Add the AMD UMC support. Unlike Intel, the UMC PMU does not expose the CAS command events via sysfs, so the read event is programmed directly (EventCode 0x0a, umask 0x1). All vendor detection is contained in num_of_mem_controllers() and dispatched to per-vendor routines. On AMD each UMC is a per-NUMA-node PMU, so only the UMCs local to the benchmark CPU are opened; remote-node UMCs would otherwise fail perf_event_open() with -ENODEV. 4. Sweep the AMD MBA schemata using absolute bandwidth values (4 GB/s to 40 GB/s) instead of the Intel style percentages (10% to 100%). 5. Extend the vendor_specific gate of the tests to Intel and AMD so they run on AMD as well. The gate is kept (rather than removed) so vendors that num_of_mem_controllers() does not know about are skipped instead of reported as a failure. Testing ------- Tested on AMD Zen4 and Zen5 (multi-NUMA) system History ------- This series continues the work Babu Moger started; v1-v3 were posted by Babu. I have taken it over, rebased it onto v7.2-rc7, addressed Reinette's review feedback and added the AMD MBA bandwidth-value patch. v3: https://lore.kernel.org/all/[email protected]/ Changes since v3 (per patch changelog is present in each patch): - Rebased onto v7.2-rc7 and reworked for the upstream resctrl_val.c refactor. - Contained all vendor detection in num_of_mem_controllers() with a shared helper for the common counter "type" read. (Reinette) - Fixed remaining Intel specific naming and the ksft diagnostics. (Reinette) - Handled the AMD per-node UMC PMU topology (skip remote-node UMCs) to fix perf_event_open() -ENODEV on multi-node systems. - New patch: use absolute bandwidth values for the AMD MBA schemata, with build-time checks that the sweep count matches the result arrays. - Kept the vendor gate at Intel | AMD so unsupported vendors are skipped rather than failed. Babu Moger (4): selftests/resctrl: Rename variables and functions to generic names selftests/resctrl: Detect vendor to select memory controller sysfs name selftests/resctrl: Add support for MBM and MBA tests on AMD selftests/resctrl: Enable MBM and MBA tests on AMD Swapnil Sapkal (1): selftests/resctrl: Use bandwidth values for AMD MBA schemata tools/testing/selftests/resctrl/mba_test.c | 105 +++-- tools/testing/selftests/resctrl/mbm_test.c | 24 +- tools/testing/selftests/resctrl/resctrl.h | 4 +- tools/testing/selftests/resctrl/resctrl_val.c | 366 +++++++++++------- 4 files changed, 320 insertions(+), 179 deletions(-)

