Commit f1dd7198 authored by Fenghua Yu's avatar Fenghua Yu Committed by Shuah Khan

selftests/resctrl: Skip the test if requested resctrl feature is not supported

There could be two reasons why a resctrl feature might not be enabled on
the platform
1. H/W might not support the feature
2. Even if the H/W supports it, the user might have disabled the feature
   through kernel command line arguments

Hence, any resctrl unit test (like cmt, cat, mbm and mba) before starting
the test will first check if the feature is enabled on the platform or not.
If the feature isn't enabled, then the test returns with an error status.
For example, if MBA isn't supported on a platform and if the user tries to
run MBA, the output will look like this

ok mounting resctrl to "/sys/fs/resctrl"
not ok MBA: schemata change

But, not supporting a feature isn't a test failure. So, instead of treating
it as an error, use the SKIP directive of the TAP protocol. With the
change, the output will look as below

ok MBA # SKIP Hardware does not support MBA or MBA is disabled
Suggested-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Tested-by: default avatarBabu Moger <babu.moger@amd.com>
Signed-off-by: default avatarFenghua Yu <fenghua.yu@intel.com>
Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent c9fb4e7c
...@@ -111,9 +111,6 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type) ...@@ -111,9 +111,6 @@ int cat_perf_miss_val(int cpu_no, int n, char *cache_type)
if (ret) if (ret)
return ret; return ret;
if (!validate_resctrl_feature_request("cat"))
return -1;
/* Get default cbm mask for L3/L2 cache */ /* Get default cbm mask for L3/L2 cache */
ret = get_cbm_mask(cache_type, cbm_mask); ret = get_cbm_mask(cache_type, cbm_mask);
if (ret) if (ret)
......
...@@ -158,9 +158,6 @@ int mba_schemata_change(int cpu_no, char *bw_report, char **benchmark_cmd) ...@@ -158,9 +158,6 @@ int mba_schemata_change(int cpu_no, char *bw_report, char **benchmark_cmd)
remove(RESULT_FILE_NAME); remove(RESULT_FILE_NAME);
if (!validate_resctrl_feature_request("mba"))
return -1;
ret = resctrl_val(benchmark_cmd, &param); ret = resctrl_val(benchmark_cmd, &param);
if (ret) if (ret)
return ret; return ret;
......
...@@ -131,9 +131,6 @@ int mbm_bw_change(int span, int cpu_no, char *bw_report, char **benchmark_cmd) ...@@ -131,9 +131,6 @@ int mbm_bw_change(int span, int cpu_no, char *bw_report, char **benchmark_cmd)
remove(RESULT_FILE_NAME); remove(RESULT_FILE_NAME);
if (!validate_resctrl_feature_request("mbm"))
return -1;
ret = resctrl_val(benchmark_cmd, &param); ret = resctrl_val(benchmark_cmd, &param);
if (ret) if (ret)
return ret; return ret;
......
...@@ -60,6 +60,12 @@ static void run_mbm_test(bool has_ben, char **benchmark_cmd, int span, ...@@ -60,6 +60,12 @@ static void run_mbm_test(bool has_ben, char **benchmark_cmd, int span,
int res; int res;
ksft_print_msg("Starting MBM BW change ...\n"); ksft_print_msg("Starting MBM BW change ...\n");
if (!validate_resctrl_feature_request(MBM_STR)) {
ksft_test_result_skip("Hardware does not support MBM or MBM is disabled\n");
return;
}
if (!has_ben) if (!has_ben)
sprintf(benchmark_cmd[5], "%s", MBA_STR); sprintf(benchmark_cmd[5], "%s", MBA_STR);
res = mbm_bw_change(span, cpu_no, bw_report, benchmark_cmd); res = mbm_bw_change(span, cpu_no, bw_report, benchmark_cmd);
...@@ -73,6 +79,12 @@ static void run_mba_test(bool has_ben, char **benchmark_cmd, int span, ...@@ -73,6 +79,12 @@ static void run_mba_test(bool has_ben, char **benchmark_cmd, int span,
int res; int res;
ksft_print_msg("Starting MBA Schemata change ...\n"); ksft_print_msg("Starting MBA Schemata change ...\n");
if (!validate_resctrl_feature_request(MBA_STR)) {
ksft_test_result_skip("Hardware does not support MBA or MBA is disabled\n");
return;
}
if (!has_ben) if (!has_ben)
sprintf(benchmark_cmd[1], "%d", span); sprintf(benchmark_cmd[1], "%d", span);
res = mba_schemata_change(cpu_no, bw_report, benchmark_cmd); res = mba_schemata_change(cpu_no, bw_report, benchmark_cmd);
...@@ -85,6 +97,11 @@ static void run_cmt_test(bool has_ben, char **benchmark_cmd, int cpu_no) ...@@ -85,6 +97,11 @@ static void run_cmt_test(bool has_ben, char **benchmark_cmd, int cpu_no)
int res; int res;
ksft_print_msg("Starting CMT test ...\n"); ksft_print_msg("Starting CMT test ...\n");
if (!validate_resctrl_feature_request(CMT_STR)) {
ksft_test_result_skip("Hardware does not support CMT or CMT is disabled\n");
return;
}
if (!has_ben) if (!has_ben)
sprintf(benchmark_cmd[5], "%s", CMT_STR); sprintf(benchmark_cmd[5], "%s", CMT_STR);
res = cmt_resctrl_val(cpu_no, 5, benchmark_cmd); res = cmt_resctrl_val(cpu_no, 5, benchmark_cmd);
...@@ -97,6 +114,12 @@ static void run_cat_test(int cpu_no, int no_of_bits) ...@@ -97,6 +114,12 @@ static void run_cat_test(int cpu_no, int no_of_bits)
int res; int res;
ksft_print_msg("Starting CAT test ...\n"); ksft_print_msg("Starting CAT test ...\n");
if (!validate_resctrl_feature_request(CAT_STR)) {
ksft_test_result_skip("Hardware does not support CAT or CAT is disabled\n");
return;
}
res = cat_perf_miss_val(cpu_no, no_of_bits, "L3"); res = cat_perf_miss_val(cpu_no, no_of_bits, "L3");
ksft_test_result(!res, "CAT: test\n"); ksft_test_result(!res, "CAT: test\n");
cat_test_cleanup(); cat_test_cleanup();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment