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

Extend feature checks to cover these two conditions.

Fixes: ee0415681eb6 ("selftests/resctrl: Use resctrl/info for feature 
detection")
Cc: <sta...@vger.kernel.org> # selftests/resctrl: Refactor feature check to use 
resource and feature name
Cc: <sta...@vger.kernel.org> # selftests/resctrl: Remove duplicate feature 
check from CMT test
Signed-off-by: Ilpo Järvinen <ilpo.jarvi...@linux.intel.com>
---
 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 3052394ca884..4e9b392d28dc 100644
--- a/tools/testing/selftests/resctrl/resctrl_tests.c
+++ b/tools/testing/selftests/resctrl/resctrl_tests.c
@@ -118,7 +118,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 umount;
        }
@@ -148,7 +150,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 umount;
        }
-- 
2.30.2

Reply via email to