[PATCH v2 0/9] selftests/resctrl: Fixes and improvements focused on Intel platforms

Reinette Chatre
2026-03-04T00:19:44Z

Changes since v1:
- The new perf interface that resctrl selftests can utilize has been accepted and
merged into v7.0-rc2. This series can thus now be considered for inclusion.
For reference,
commit 6a8a48644c4b ("perf/x86/intel/uncore: Add per-scheduler IMC CAS count events")
The resctrl selftest changes making use of the new perf interface are backward
compatible. The selftests do not require a v7.0-rc2 kernel to run but the
tests can only pass on recent Intel platforms running v7.0-rc2 or later.
- Combine the two outstanding resctrl selftest submissions into one series
for easier tracking:
https://lore.kernel.org/lkml/084e82b5c29d75f16f24af8768d50d39ba0118a5.1769101788.git.reinette.chatre@intel.com/
https://lore.kernel.org/lkml/cover.1770406608.git.reinette.chatre@intel.com/
- Fix typo in changelog of "selftests/resctrl: Improve accuracy of cache
occupancy test": "the data my be in L2" -> "the data my be in L2"
- Add Zide Chen's RB tags.

Cover letter updated to be accurate wrt perf changes:

The resctrl selftests fail on recent Intel platforms. Intermittent failures
in the CAT test and permanent failures of MBM and MBA tests on new platforms
like Sierra Forest and Granite Rapids.

The MBM and MBA resctrl selftests both generate memory traffic and compare the
memory bandwidth measurements between the iMC PMUs and MBM to determine pass or
fail. Both these tests are failing on recent platforms like Sierra Forest and
Granite Rapids that have two events that need to be read and combined
for a total memory bandwidth count instead of the single event available on
earlier platforms.

resctrl selftests prefer to obtain event details via sysfs instead of adding
model specific details on which events to read. Enhancements to perf to expose
the new event details are available since:
commit 6a8a48644c4b ("perf/x86/intel/uncore: Add per-scheduler IMC CAS count events")
This series demonstrates use of the new sysfs interface to perf to
obtain to obtain accurate iMC read memory bandwidth measurements.

An additional issue with all the tests is that these selftests are part
performance tests and determine pass/fail on performance heuristics selected
after running the tests on a variety of platforms. When new platforms
arrive the previous heuristics may cause the tests to fail. These failures are
not because of an issue with the resctrl subsystem the tests intend to test
but because of the architectural changes in the new platforms.

Adapt the resctrl tests to not be as sensitive to architectural changes
while adjusting the remaining heuristics to ensure tests pass on a variety
of platforms. More details in individual patches.

Tested by running 100 iterations of all tests on Emerald Rapids, Granite
Rapids, Sapphire Rapids, Ice Lake, Sierra Forest, and Broadwell.

Reinette Chatre (9):
selftests/resctrl: Improve accuracy of cache occupancy test
selftests/resctrl: Do not store iMC counter value in counter config
structure
selftests/resctrl: Prepare for parsing multiple events per iMC
selftests/resctrl: Support multiple events associated with iMC
selftests/resctrl: Increase size of buffer used in MBM and MBA tests
selftests/resctrl: Raise threshold at which MBM and PMU values are
compared
selftests/resctrl: Remove requirement on cache miss rate
selftests/resctrl: Simplify perf usage in CAT test
selftests/resctrl: Reduce L2 impact on CAT test

tools/testing/selftests/resctrl/cache.c | 17 +--
tools/testing/selftests/resctrl/cat_test.c | 43 ++----
tools/testing/selftests/resctrl/cmt_test.c | 35 ++++-
tools/testing/selftests/resctrl/fill_buf.c | 4 +-
tools/testing/selftests/resctrl/mba_test.c | 6 +-
tools/testing/selftests/resctrl/mbm_test.c | 6 +-
tools/testing/selftests/resctrl/resctrl.h | 17 +--
tools/testing/selftests/resctrl/resctrl_val.c | 131 +++++++++++++-----
8 files changed, 162 insertions(+), 97 deletions(-)

base-commit: 11439c4635edd669ae435eec308f4ab8a0804808
--
2.50.1