2022-03-24 07:28:04

by Shaopeng Tan

[permalink] [raw]
Subject: [PATCH v7 0/6] selftests/resctrl: Add resctrl_tests into kselftest set

Hello,

The aim of this series is to make resctrl_tests run by using
kselftest framework.
- I modify resctrl_test Makefile and kselftest Makefile,
to enable build/run resctrl_tests by using kselftest framework.
Of course, users can also build/run resctrl_tests without
using framework as before.
- I change the default limited time for resctrl_tests to 120 seconds, to
ensure the resctrl_tests finish in limited time on different environments.
- When resctrl file system is not supported by environment or
resctrl_tests is not run as root, return skip code of kselftest framework.
- If resctrl_tests does not finish in limited time, terminate it as
same as executing ctrl+c that kills parent process and child process.

Difference from v6:
- Fixed the typos.
https://lore.kernel.org/lkml/[email protected]/ [PATCH v6]

This patch series is based on 'next' branch of linux-kselftest.
Note that Patch [4/6] uses KHDR_INCLUDES which is introduced by a patch
on 'next' branch of linux-kselftest (not merged in mainline yet)
linux-kselftest: git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git

Shaopeng Tan (6):
selftests/resctrl: Kill child process before parent process terminates
if SIGTERM is received
selftests/resctrl: Change the default limited time to 120 seconds
selftests/resctrl: Fix resctrl_tests' return code to work with
selftest framework
selftests/resctrl: Make resctrl_tests run using kselftest framework
selftests/resctrl: Update README about using kselftest framework to
build/run resctrl_tests
selftests/resctrl: Add missing SPDX license to Makefile

tools/testing/selftests/Makefile | 1 +
tools/testing/selftests/resctrl/Makefile | 19 +++------
tools/testing/selftests/resctrl/README | 39 +++++++++++++++----
.../testing/selftests/resctrl/resctrl_tests.c | 4 +-
tools/testing/selftests/resctrl/resctrl_val.c | 1 +
tools/testing/selftests/resctrl/settings | 3 ++
6 files changed, 45 insertions(+), 22 deletions(-)
create mode 100644 tools/testing/selftests/resctrl/settings

--
2.27.0


2022-03-24 12:56:44

by Shaopeng Tan

[permalink] [raw]
Subject: [PATCH v7 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]>
Reviewed-by: Reinette Chatre <[email protected]>
Reviewed-by: Fenghua Yu <[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..6d6b993e2070 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 config option.\n");

filter_dmesg();

--
2.27.0

2022-03-24 22:14:09

by Shaopeng Tan

[permalink] [raw]
Subject: [PATCH v7 2/6] selftests/resctrl: Change the default limited time to 120 seconds

When testing on a Intel(R) Xeon(R) Gold 6254 CPU @ 3.10GHz the resctrl
selftests fail due to timeout after exceeding the default time limit of
45 seconds. On this system the test takes about 68 seconds.
Since the failing test by default accesses a fixed size of memory, the
execution time should not vary significantly between different environment.
A new default of 120 seconds should be sufficient yet easy to customize
with the introduction of the "settings" file for reference.

Reviewed-by: Reinette Chatre <[email protected]>
Reviewed-by: Fenghua Yu <[email protected]>
Signed-off-by: Shaopeng Tan <[email protected]>
---
tools/testing/selftests/resctrl/settings | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 tools/testing/selftests/resctrl/settings

diff --git a/tools/testing/selftests/resctrl/settings b/tools/testing/selftests/resctrl/settings
new file mode 100644
index 000000000000..a383f3d4565b
--- /dev/null
+++ b/tools/testing/selftests/resctrl/settings
@@ -0,0 +1,3 @@
+# If running time is longer than 120 seconds when new tests are added in
+# the future, increase timeout here.
+timeout=120
--
2.27.0

2022-04-26 09:03:37

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH v7 0/6] selftests/resctrl: Add resctrl_tests into kselftest set

On 3/23/22 2:12 AM, Shaopeng Tan wrote:
> Hello,
>
> The aim of this series is to make resctrl_tests run by using
> kselftest framework.
> - I modify resctrl_test Makefile and kselftest Makefile,
> to enable build/run resctrl_tests by using kselftest framework.
> Of course, users can also build/run resctrl_tests without
> using framework as before.
> - I change the default limited time for resctrl_tests to 120 seconds, to
> ensure the resctrl_tests finish in limited time on different environments.
> - When resctrl file system is not supported by environment or
> resctrl_tests is not run as root, return skip code of kselftest framework.
> - If resctrl_tests does not finish in limited time, terminate it as
> same as executing ctrl+c that kills parent process and child process.
>
> Difference from v6:
> - Fixed the typos.
> https://lore.kernel.org/lkml/[email protected]/ [PATCH v6]
>
> This patch series is based on 'next' branch of linux-kselftest.
> Note that Patch [4/6] uses KHDR_INCLUDES which is introduced by a patch
> on 'next' branch of linux-kselftest (not merged in mainline yet)
> linux-kselftest: git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git
>
> Shaopeng Tan (6):
> selftests/resctrl: Kill child process before parent process terminates
> if SIGTERM is received
> selftests/resctrl: Change the default limited time to 120 seconds
> selftests/resctrl: Fix resctrl_tests' return code to work with
> selftest framework
> selftests/resctrl: Make resctrl_tests run using kselftest framework
> selftests/resctrl: Update README about using kselftest framework to
> build/run resctrl_tests
> selftests/resctrl: Add missing SPDX license to Makefile
>
> tools/testing/selftests/Makefile | 1 +
> tools/testing/selftests/resctrl/Makefile | 19 +++------
> tools/testing/selftests/resctrl/README | 39 +++++++++++++++----
> .../testing/selftests/resctrl/resctrl_tests.c | 4 +-
> tools/testing/selftests/resctrl/resctrl_val.c | 1 +
> tools/testing/selftests/resctrl/settings | 3 ++
> 6 files changed, 45 insertions(+), 22 deletions(-)
> create mode 100644 tools/testing/selftests/resctrl/settings
>

Applied now to linux-kselftest next for 5.19-rc1

thanks,
-- Shuah