The MBA and CMT tests expect support of other features to be able to
run.

When platform only supports MBA but not MBM, MBA test will fail with:
Failed to open total bw file: No such file or directory

When platform only supports CMT but not CAT, CMT test will fail with:
Failed to open bit mask file '/sys/fs/resctrl/info/L3/cbm_mask': No such file 
or directory

It leads to the test reporting test fail (even if no test was run at
all).

Extend feature checks to cover these two conditions to show these tests
were skipped rather than failed.

Fixes: ee0415681eb6 ("selftests/resctrl: Use resctrl/info for feature 
detection")
Signed-off-by: Ilpo Järvinen <[email protected]>
Tested-by: Shaopeng Tan <[email protected]>
Reviewed-by: Reinette Chatre <[email protected]>
Reviewed-by: Shaopeng Tan <[email protected]>
Cc: <[email protected]> # selftests/resctrl: Refactor feature check to use 
resource and feature name
---
 tools/testing/selftests/resctrl/resctrl_tests.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/resctrl/resctrl_tests.c 
b/tools/testing/selftests/resctrl/resctrl_tests.c
index 7836bf0655fe..063fc3e50e48 100644
--- a/tools/testing/selftests/resctrl/resctrl_tests.c
+++ b/tools/testing/selftests/resctrl/resctrl_tests.c
@@ -130,7 +130,9 @@ static void run_mba_test(const char * const *benchmark_cmd, 
int cpu_no)
                return;
        }
 
-       if (!validate_resctrl_feature_request("MB", NULL) || (get_vendor() != 
ARCH_INTEL)) {
+       if (!validate_resctrl_feature_request("MB", NULL) ||
+           !validate_resctrl_feature_request("L3_MON", "mbm_local_bytes") ||
+           (get_vendor() != ARCH_INTEL)) {
                ksft_test_result_skip("Hardware does not support MBA or MBA is 
disabled\n");
                goto cleanup;
        }
@@ -153,7 +155,8 @@ static void run_cmt_test(const char * const *benchmark_cmd, 
int cpu_no)
                return;
        }
 
-       if (!validate_resctrl_feature_request("L3_MON", "llc_occupancy")) {
+       if (!validate_resctrl_feature_request("L3_MON", "llc_occupancy") ||
+           !validate_resctrl_feature_request("L3", NULL)) {
                ksft_test_result_skip("Hardware does not support CMT or CMT is 
disabled\n");
                goto cleanup;
        }
-- 
2.30.2

Reply via email to