[RFC patch 4/9] selftests/resctrl: Move memory bandwidth measurement init and cleanup to resctrl_val.c

From: Yifan Wu

Date: Tue Mar 03 2026 - 23:05:59 EST


The initialization for memory bandwidth measurement was duplicated across
mbm_test.c and mba_test.c.

This commit move the memory bandwidth measurement's initialization
to resctrl_val.c. It introduces a new common initialization function,
including the new vendor-specific configuration setup.

Additionally, a cleanup call has been added to the test teardown routines
to ensure that resources allocated during initialization are properly
released.

Signed-off-by: Yifan Wu <wuyifan50@xxxxxxxxxx>
---
tools/testing/selftests/resctrl/mba_test.c | 11 ++---------
tools/testing/selftests/resctrl/mbm_test.c | 11 ++---------
tools/testing/selftests/resctrl/resctrl_val.c | 8 ++++++++
3 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/tools/testing/selftests/resctrl/mba_test.c b/tools/testing/selftests/resctrl/mba_test.c
index c7e9adc0368f..c41914f6a2e6 100644
--- a/tools/testing/selftests/resctrl/mba_test.c
+++ b/tools/testing/selftests/resctrl/mba_test.c
@@ -19,15 +19,7 @@

static int mba_init(const struct resctrl_val_param *param, int domain_id)
{
- int ret;
-
- ret = initialize_read_mem_bw_imc();
- if (ret)
- return ret;
-
- initialize_mem_bw_resctrl(param, domain_id);
-
- return 0;
+ return initialize_measure_read_mem_bw(param, domain_id);
}

/*
@@ -164,6 +156,7 @@ static int check_results(void)

static void mba_test_cleanup(void)
{
+ cleanup_read_mem_bw_imc();
remove(RESULT_FILE_NAME);
}

diff --git a/tools/testing/selftests/resctrl/mbm_test.c b/tools/testing/selftests/resctrl/mbm_test.c
index 84d8bc250539..1d4ef268db5a 100644
--- a/tools/testing/selftests/resctrl/mbm_test.c
+++ b/tools/testing/selftests/resctrl/mbm_test.c
@@ -85,15 +85,7 @@ static int check_results(size_t span)

static int mbm_init(const struct resctrl_val_param *param, int domain_id)
{
- int ret;
-
- ret = initialize_read_mem_bw_imc();
- if (ret)
- return ret;
-
- initialize_mem_bw_resctrl(param, domain_id);
-
- return 0;
+ return initialize_measure_read_mem_bw(param, domain_id);
}

static int mbm_setup(const struct resctrl_test *test,
@@ -123,6 +115,7 @@ static int mbm_measure(const struct user_params *uparams,

static void mbm_test_cleanup(void)
{
+ cleanup_read_mem_bw_imc();
remove(RESULT_FILE_NAME);
}

diff --git a/tools/testing/selftests/resctrl/resctrl_val.c b/tools/testing/selftests/resctrl/resctrl_val.c
index 68e46c863474..75a3d359f16b 100644
--- a/tools/testing/selftests/resctrl/resctrl_val.c
+++ b/tools/testing/selftests/resctrl/resctrl_val.c
@@ -520,6 +520,14 @@ int initialize_measure_read_mem_bw(const struct resctrl_val_param *param, int do
if (!current_config->vendor_id)
return -1;

+ int ret;
+
+ ret = initialize_read_mem_bw_imc();
+ if (ret)
+ return ret;
+
+ initialize_mem_bw_resctrl(param, domain_id);
+
return 0;
}

--
2.33.0