2022-03-11 16:15:53

by Shaopeng Tan

[permalink] [raw]
Subject: [PATCH v5 3/6] selftests/resctrl: Fix resctrl_tests' return code to work with selftest framework

In kselftest framework, if a sub test can not run by some reasons,
the test result should be marked as SKIP rather than FAIL.
Return KSFT_SKIP(4) instead of KSFT_FAIL(1) if resctrl_tests is not run
as root or it is run on a test environment which does not support resctrl.

- ksft_exit_fail_msg(): returns KSFT_FAIL(1)
- ksft_exit_skip(): returns KSFT_SKIP(4)

Reviewed-by: Shuah Khan <[email protected]>
Signed-off-by: Shaopeng Tan <[email protected]>
---
tools/testing/selftests/resctrl/resctrl_tests.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/resctrl/resctrl_tests.c b/tools/testing/selftests/resctrl/resctrl_tests.c
index 973f09a66e1e..a44afb05b848 100644
--- a/tools/testing/selftests/resctrl/resctrl_tests.c
+++ b/tools/testing/selftests/resctrl/resctrl_tests.c
@@ -205,7 +205,7 @@ int main(int argc, char **argv)
* 2. We execute perf commands
*/
if (geteuid() != 0)
- return ksft_exit_fail_msg("Not running as root, abort testing.\n");
+ return ksft_exit_skip("Not running as root. Skipping...\n");

/* Detect AMD vendor */
detect_amd();
@@ -235,7 +235,7 @@ int main(int argc, char **argv)
sprintf(bm_type, "fill_buf");

if (!check_resctrlfs_support())
- return ksft_exit_fail_msg("resctrl FS does not exist\n");
+ return ksft_exit_skip("resctrl FS does not exist. Enable X86_CPU_RESCTRL and PROC_CPU_RESCTRL config options.\n");

filter_dmesg();

--
2.27.0


2022-03-11 23:14:59

by Reinette Chatre

[permalink] [raw]
Subject: Re: [PATCH v5 3/6] selftests/resctrl: Fix resctrl_tests' return code to work with selftest framework

Hi Shaopeng Tan,

On 3/10/2022 11:21 PM, Shaopeng Tan wrote:
> In kselftest framework, if a sub test can not run by some reasons,
> the test result should be marked as SKIP rather than FAIL.
> Return KSFT_SKIP(4) instead of KSFT_FAIL(1) if resctrl_tests is not run
> as root or it is run on a test environment which does not support resctrl.
>
> - ksft_exit_fail_msg(): returns KSFT_FAIL(1)
> - ksft_exit_skip(): returns KSFT_SKIP(4)
>
> Reviewed-by: Shuah Khan <[email protected]>
> Signed-off-by: Shaopeng Tan <[email protected]>
> ---
> tools/testing/selftests/resctrl/resctrl_tests.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/resctrl/resctrl_tests.c b/tools/testing/selftests/resctrl/resctrl_tests.c
> index 973f09a66e1e..a44afb05b848 100644
> --- a/tools/testing/selftests/resctrl/resctrl_tests.c
> +++ b/tools/testing/selftests/resctrl/resctrl_tests.c
> @@ -205,7 +205,7 @@ int main(int argc, char **argv)
> * 2. We execute perf commands
> */
> if (geteuid() != 0)
> - return ksft_exit_fail_msg("Not running as root, abort testing.\n");
> + return ksft_exit_skip("Not running as root. Skipping...\n");
>
> /* Detect AMD vendor */
> detect_amd();
> @@ -235,7 +235,7 @@ int main(int argc, char **argv)
> sprintf(bm_type, "fill_buf");
>
> if (!check_resctrlfs_support())
> - return ksft_exit_fail_msg("resctrl FS does not exist\n");
> + return ksft_exit_skip("resctrl FS does not exist. Enable X86_CPU_RESCTRL and PROC_CPU_RESCTRL config options.\n");

The resctrl tests do not depend on or exercise the code enabled when PROC_CPU_RESCTRL
is set so there is no need to require users to enable it. It (PROC_CPU_RESCTRL) is
automatically selected anyway if PROC_FS is enabled.

An explicit check for the existence of /proc/{pid}/cpu_resctrl_groups would be
required if somebody ever does add a resctrl test to exercise the code enabled
by that config. There is no need to require that setting now.

Thus could just be "resctrl FS does not exist. Enable X86_CPU_RESCTRL config option."

>
> filter_dmesg();
>

Reinette