Skip to content

Commit 501cfdb

Browse files
rchatreshuahkh
authored andcommitted
selftests/resctrl: Do not compare performance counters and resctrl at low bandwidth
The MBA test incrementally throttles memory bandwidth, each time followed by a comparison between the memory bandwidth observed by the performance counters and resctrl respectively. While a comparison between performance counters and resctrl is generally appropriate, they do not have an identical view of memory bandwidth. For example RAS features or memory performance features that generate memory traffic may drive accesses that are counted differently by performance counters and MBM respectively, for instance generating "overhead" traffic which is not counted against any specific RMID. As a ratio, this different view of memory bandwidth becomes more apparent at low memory bandwidths. It is not practical to enable/disable the various features that may generate memory bandwidth to give performance counters and resctrl an identical view. Instead, do not compare performance counters and resctrl view of memory bandwidth when the memory bandwidth is low. Bandwidth throttling behaves differently across platforms so it is not appropriate to drop measurement data simply based on the throttling level. Instead, use a threshold of 750MiB that has been observed to support adequate comparison between performance counters and resctrl. Signed-off-by: Reinette Chatre <[email protected]> Reviewed-by: Ilpo Järvinen <[email protected]> Signed-off-by: Shuah Khan <[email protected]>
1 parent f77b967 commit 501cfdb

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

tools/testing/selftests/resctrl/mba_test.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,13 @@ static bool show_mba_info(unsigned long *bw_imc, unsigned long *bw_resc)
9898

9999
avg_bw_imc = sum_bw_imc / (NUM_OF_RUNS - 1);
100100
avg_bw_resc = sum_bw_resc / (NUM_OF_RUNS - 1);
101+
if (avg_bw_imc < THROTTLE_THRESHOLD || avg_bw_resc < THROTTLE_THRESHOLD) {
102+
ksft_print_msg("Bandwidth below threshold (%d MiB). Dropping results from MBA schemata %u.\n",
103+
THROTTLE_THRESHOLD,
104+
ALLOCATION_MIN + ALLOCATION_STEP * allocation);
105+
continue;
106+
}
107+
101108
avg_diff = (float)labs(avg_bw_resc - avg_bw_imc) / avg_bw_imc;
102109
avg_diff_per = (int)(avg_diff * 100);
103110

tools/testing/selftests/resctrl/resctrl.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@
4343

4444
#define MINIMUM_SPAN (250 * MB)
4545

46+
/*
47+
* Memory bandwidth (in MiB) below which the bandwidth comparisons
48+
* between iMC and resctrl are considered unreliable. For example RAS
49+
* features or memory performance features that generate memory traffic
50+
* may drive accesses that are counted differently by performance counters
51+
* and MBM respectively, for instance generating "overhead" traffic which
52+
* is not counted against any specific RMID.
53+
*/
54+
#define THROTTLE_THRESHOLD 750
55+
4656
/*
4757
* fill_buf_param: "fill_buf" benchmark parameters
4858
* @buf_size: Size (in bytes) of buffer used in benchmark.

0 commit comments

Comments
 (0)