Hi Ilpo,
On 6/7/24 5:53 AM, Ilpo Järvinen wrote:
For MBM/MBA tests, measure_vals() calls get_mem_bw_imc() that performs the measurement over a duration of sleep(1) call. The memory bandwidth numbers from IMC are derived over this duration. The resctrl FS derived memory bandwidth, however, is calculated inside measure_vals() and only takes delta between the previous value and the current one which besides the actual test, also samples inter-test noise.
Rework the logic in measure_vals() and get_mem_bw_imc() such that the resctrl FS memory bandwidth section covers much shorter duration closely matching that of the IMC perf counters to improve measurement accuracy.
For the second read after rewind() to return a fresh value, also newline has to be consumed by the fscanf().
Suggested-by: Reinette Chatre reinette.chatre@intel.com Signed-off-by: Ilpo Järvinen ilpo.jarvinen@linux.intel.com Tested-by: Babu Moger babu.moger@amd.com
v6:
- Adjust closing/rollback of the IMC perf
- Move the comment in measure_vals() to function level
- Capitalize MBM
- binded to -> bound to
This change does not match the patch.
v5:
- Open mem bw file once and use rewind()
- Read \n from the mem bw file to allow rewind to return a new value.
v4:
- Open resctrl mem bw file (twice) beforehand to avoid opening it during the test
v3:
- Don't drop Return: entry from perf_open_imc_mem_bw() func comment
tools/testing/selftests/resctrl/resctrl_val.c | 141 +++++++++++------- 1 file changed, 91 insertions(+), 50 deletions(-)
diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c index f55f5989de72..1575c5c09ac7 100644 --- a/tools/testing/selftests/resctrl/resctrl_val.c +++ b/tools/testing/selftests/resctrl/resctrl_val.c @@ -306,18 +306,13 @@ static void perf_close_imc_mem_bw(void) } /*
- get_mem_bw_imc: Memory band width as reported by iMC counters
- @cpu_no: CPU number that the benchmark PID is binded to
- @bw_report: Bandwidth report type (reads, writes)
- Memory B/W utilized by a process on a socket can be calculated using
- iMC counters. Perf events are used to read these counters.
- perf_open_imc_mem_bw - Open perf fds for IMCs
- @cpu_no: CPU number that the benchmark PID is bounded to
"is bounded to" -> "is bound to"?
Just the one nitpick from me. The patch looks good to me. Thank you very much.
| Reviewed-by: Reinette Chatre reinette.chatre@intel.com
Reinette