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 <[email protected]>
---
 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


Reply via email to