2020-03-04 13:17:51

by Po-Hsu Lin

[permalink] [raw]
Subject: [PATCH] selftests/powerpc: Turn off timeout setting for benchmarks, dscr, signal, tm

Some specific tests in powerpc can take longer than the default 45
seconds that added in commit 852c8cbf (selftests/kselftest/runner.sh:
Add 45 second timeout per test) to run, the following test result was
collected across 2 Power8 nodes and 1 Power9 node in our pool:
powerpc/benchmarks/futex_bench - 52s
powerpc/dscr/dscr_sysfs_test - 116s
powerpc/signal/signal_fuzzer - 88s
powerpc/tm/tm_unavailable_test - 168s
powerpc/tm/tm-poison - 240s

Thus they will fail with TIMEOUT error. Disable the timeout setting
for these sub-tests to allow them finish properly.

https://bugs.launchpad.net/bugs/1864642
Signed-off-by: Po-Hsu Lin <[email protected]>
---
tools/testing/selftests/powerpc/benchmarks/Makefile | 2 ++
tools/testing/selftests/powerpc/benchmarks/settings | 1 +
tools/testing/selftests/powerpc/dscr/Makefile | 2 ++
tools/testing/selftests/powerpc/dscr/settings | 1 +
tools/testing/selftests/powerpc/signal/Makefile | 2 ++
tools/testing/selftests/powerpc/signal/settings | 1 +
tools/testing/selftests/powerpc/tm/Makefile | 2 ++
tools/testing/selftests/powerpc/tm/settings | 1 +
8 files changed, 12 insertions(+)
create mode 100644 tools/testing/selftests/powerpc/benchmarks/settings
create mode 100644 tools/testing/selftests/powerpc/dscr/settings
create mode 100644 tools/testing/selftests/powerpc/signal/settings
create mode 100644 tools/testing/selftests/powerpc/tm/settings

diff --git a/tools/testing/selftests/powerpc/benchmarks/Makefile b/tools/testing/selftests/powerpc/benchmarks/Makefile
index d40300a..a32a6ab 100644
--- a/tools/testing/selftests/powerpc/benchmarks/Makefile
+++ b/tools/testing/selftests/powerpc/benchmarks/Makefile
@@ -2,6 +2,8 @@
TEST_GEN_PROGS := gettimeofday context_switch fork mmap_bench futex_bench null_syscall
TEST_GEN_FILES := exec_target

+TEST_FILES := settings
+
CFLAGS += -O2

top_srcdir = ../../../../..
diff --git a/tools/testing/selftests/powerpc/benchmarks/settings b/tools/testing/selftests/powerpc/benchmarks/settings
new file mode 100644
index 0000000..e7b9417
--- /dev/null
+++ b/tools/testing/selftests/powerpc/benchmarks/settings
@@ -0,0 +1 @@
+timeout=0
diff --git a/tools/testing/selftests/powerpc/dscr/Makefile b/tools/testing/selftests/powerpc/dscr/Makefile
index 5df4763..cfa6eed 100644
--- a/tools/testing/selftests/powerpc/dscr/Makefile
+++ b/tools/testing/selftests/powerpc/dscr/Makefile
@@ -3,6 +3,8 @@ TEST_GEN_PROGS := dscr_default_test dscr_explicit_test dscr_user_test \
dscr_inherit_test dscr_inherit_exec_test dscr_sysfs_test \
dscr_sysfs_thread_test

+TEST_FILES := settings
+
top_srcdir = ../../../../..
include ../../lib.mk

diff --git a/tools/testing/selftests/powerpc/dscr/settings b/tools/testing/selftests/powerpc/dscr/settings
new file mode 100644
index 0000000..e7b9417
--- /dev/null
+++ b/tools/testing/selftests/powerpc/dscr/settings
@@ -0,0 +1 @@
+timeout=0
diff --git a/tools/testing/selftests/powerpc/signal/Makefile b/tools/testing/selftests/powerpc/signal/Makefile
index 113838f..153fafc 100644
--- a/tools/testing/selftests/powerpc/signal/Makefile
+++ b/tools/testing/selftests/powerpc/signal/Makefile
@@ -5,6 +5,8 @@ CFLAGS += -maltivec
$(OUTPUT)/signal_tm: CFLAGS += -mhtm
$(OUTPUT)/sigfuz: CFLAGS += -pthread -m64

+TEST_FILES := settings
+
top_srcdir = ../../../../..
include ../../lib.mk

diff --git a/tools/testing/selftests/powerpc/signal/settings b/tools/testing/selftests/powerpc/signal/settings
new file mode 100644
index 0000000..e7b9417
--- /dev/null
+++ b/tools/testing/selftests/powerpc/signal/settings
@@ -0,0 +1 @@
+timeout=0
diff --git a/tools/testing/selftests/powerpc/tm/Makefile b/tools/testing/selftests/powerpc/tm/Makefile
index b15a1a3..7b99d09 100644
--- a/tools/testing/selftests/powerpc/tm/Makefile
+++ b/tools/testing/selftests/powerpc/tm/Makefile
@@ -7,6 +7,8 @@ TEST_GEN_PROGS := tm-resched-dscr tm-syscall tm-signal-msr-resv tm-signal-stack
$(SIGNAL_CONTEXT_CHK_TESTS) tm-sigreturn tm-signal-sigreturn-nt \
tm-signal-context-force-tm tm-poison

+TEST_FILES := settings
+
top_srcdir = ../../../../..
include ../../lib.mk

diff --git a/tools/testing/selftests/powerpc/tm/settings b/tools/testing/selftests/powerpc/tm/settings
new file mode 100644
index 0000000..e7b9417
--- /dev/null
+++ b/tools/testing/selftests/powerpc/tm/settings
@@ -0,0 +1 @@
+timeout=0
--
2.7.4


2020-03-05 07:33:38

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] selftests/powerpc: Turn off timeout setting for benchmarks, dscr, signal, tm

Po-Hsu Lin <[email protected]> writes:
> Some specific tests in powerpc can take longer than the default 45
> seconds that added in commit 852c8cbf (selftests/kselftest/runner.sh:
> Add 45 second timeout per test) to run, the following test result was
> collected across 2 Power8 nodes and 1 Power9 node in our pool:
> powerpc/benchmarks/futex_bench - 52s
> powerpc/dscr/dscr_sysfs_test - 116s
> powerpc/signal/signal_fuzzer - 88s
> powerpc/tm/tm_unavailable_test - 168s
> powerpc/tm/tm-poison - 240s
>
> Thus they will fail with TIMEOUT error. Disable the timeout setting
> for these sub-tests to allow them finish properly.

I run the powerpc tests with run-parts, rather than the kselftest
script, we already have our own test runner with a 120s timeout.

I didn't think the kselftests runner actually worked with the powerpc
tests? Because we override RUN_TESTS.

cheers


> https://bugs.launchpad.net/bugs/1864642
> Signed-off-by: Po-Hsu Lin <[email protected]>
> ---
> tools/testing/selftests/powerpc/benchmarks/Makefile | 2 ++
> tools/testing/selftests/powerpc/benchmarks/settings | 1 +
> tools/testing/selftests/powerpc/dscr/Makefile | 2 ++
> tools/testing/selftests/powerpc/dscr/settings | 1 +
> tools/testing/selftests/powerpc/signal/Makefile | 2 ++
> tools/testing/selftests/powerpc/signal/settings | 1 +
> tools/testing/selftests/powerpc/tm/Makefile | 2 ++
> tools/testing/selftests/powerpc/tm/settings | 1 +
> 8 files changed, 12 insertions(+)
> create mode 100644 tools/testing/selftests/powerpc/benchmarks/settings
> create mode 100644 tools/testing/selftests/powerpc/dscr/settings
> create mode 100644 tools/testing/selftests/powerpc/signal/settings
> create mode 100644 tools/testing/selftests/powerpc/tm/settings
>
> diff --git a/tools/testing/selftests/powerpc/benchmarks/Makefile b/tools/testing/selftests/powerpc/benchmarks/Makefile
> index d40300a..a32a6ab 100644
> --- a/tools/testing/selftests/powerpc/benchmarks/Makefile
> +++ b/tools/testing/selftests/powerpc/benchmarks/Makefile
> @@ -2,6 +2,8 @@
> TEST_GEN_PROGS := gettimeofday context_switch fork mmap_bench futex_bench null_syscall
> TEST_GEN_FILES := exec_target
>
> +TEST_FILES := settings
> +
> CFLAGS += -O2
>
> top_srcdir = ../../../../..
> diff --git a/tools/testing/selftests/powerpc/benchmarks/settings b/tools/testing/selftests/powerpc/benchmarks/settings
> new file mode 100644
> index 0000000..e7b9417
> --- /dev/null
> +++ b/tools/testing/selftests/powerpc/benchmarks/settings
> @@ -0,0 +1 @@
> +timeout=0
> diff --git a/tools/testing/selftests/powerpc/dscr/Makefile b/tools/testing/selftests/powerpc/dscr/Makefile
> index 5df4763..cfa6eed 100644
> --- a/tools/testing/selftests/powerpc/dscr/Makefile
> +++ b/tools/testing/selftests/powerpc/dscr/Makefile
> @@ -3,6 +3,8 @@ TEST_GEN_PROGS := dscr_default_test dscr_explicit_test dscr_user_test \
> dscr_inherit_test dscr_inherit_exec_test dscr_sysfs_test \
> dscr_sysfs_thread_test
>
> +TEST_FILES := settings
> +
> top_srcdir = ../../../../..
> include ../../lib.mk
>
> diff --git a/tools/testing/selftests/powerpc/dscr/settings b/tools/testing/selftests/powerpc/dscr/settings
> new file mode 100644
> index 0000000..e7b9417
> --- /dev/null
> +++ b/tools/testing/selftests/powerpc/dscr/settings
> @@ -0,0 +1 @@
> +timeout=0
> diff --git a/tools/testing/selftests/powerpc/signal/Makefile b/tools/testing/selftests/powerpc/signal/Makefile
> index 113838f..153fafc 100644
> --- a/tools/testing/selftests/powerpc/signal/Makefile
> +++ b/tools/testing/selftests/powerpc/signal/Makefile
> @@ -5,6 +5,8 @@ CFLAGS += -maltivec
> $(OUTPUT)/signal_tm: CFLAGS += -mhtm
> $(OUTPUT)/sigfuz: CFLAGS += -pthread -m64
>
> +TEST_FILES := settings
> +
> top_srcdir = ../../../../..
> include ../../lib.mk
>
> diff --git a/tools/testing/selftests/powerpc/signal/settings b/tools/testing/selftests/powerpc/signal/settings
> new file mode 100644
> index 0000000..e7b9417
> --- /dev/null
> +++ b/tools/testing/selftests/powerpc/signal/settings
> @@ -0,0 +1 @@
> +timeout=0
> diff --git a/tools/testing/selftests/powerpc/tm/Makefile b/tools/testing/selftests/powerpc/tm/Makefile
> index b15a1a3..7b99d09 100644
> --- a/tools/testing/selftests/powerpc/tm/Makefile
> +++ b/tools/testing/selftests/powerpc/tm/Makefile
> @@ -7,6 +7,8 @@ TEST_GEN_PROGS := tm-resched-dscr tm-syscall tm-signal-msr-resv tm-signal-stack
> $(SIGNAL_CONTEXT_CHK_TESTS) tm-sigreturn tm-signal-sigreturn-nt \
> tm-signal-context-force-tm tm-poison
>
> +TEST_FILES := settings
> +
> top_srcdir = ../../../../..
> include ../../lib.mk
>
> diff --git a/tools/testing/selftests/powerpc/tm/settings b/tools/testing/selftests/powerpc/tm/settings
> new file mode 100644
> index 0000000..e7b9417
> --- /dev/null
> +++ b/tools/testing/selftests/powerpc/tm/settings
> @@ -0,0 +1 @@
> +timeout=0
> --
> 2.7.4

2020-03-05 09:03:38

by Po-Hsu Lin

[permalink] [raw]
Subject: Re: [PATCH] selftests/powerpc: Turn off timeout setting for benchmarks, dscr, signal, tm

On Thu, Mar 5, 2020 at 3:32 PM Michael Ellerman <[email protected]> wrote:
>
> Po-Hsu Lin <[email protected]> writes:
> > Some specific tests in powerpc can take longer than the default 45
> > seconds that added in commit 852c8cbf (selftests/kselftest/runner.sh:
> > Add 45 second timeout per test) to run, the following test result was
> > collected across 2 Power8 nodes and 1 Power9 node in our pool:
> > powerpc/benchmarks/futex_bench - 52s
> > powerpc/dscr/dscr_sysfs_test - 116s
> > powerpc/signal/signal_fuzzer - 88s
> > powerpc/tm/tm_unavailable_test - 168s
> > powerpc/tm/tm-poison - 240s
> >
> > Thus they will fail with TIMEOUT error. Disable the timeout setting
> > for these sub-tests to allow them finish properly.
>
> I run the powerpc tests with run-parts, rather than the kselftest
> script, we already have our own test runner with a 120s timeout.
>
> I didn't think the kselftests runner actually worked with the powerpc
> tests? Because we override RUN_TESTS.
>
Hello Michael,

I have done a small experiment with timeout=1 in settings and use
run-parts to run the executables, it looks like this change won't
affect run-parts.

Not quite sure about the RUN_TESTS you mentioned here, we're testing
it with command like:
sudo make -C linux/tools/testing/selftests TARGETS=powerpc run_tests
And the timeout setting will take effect with this.

Thanks

> cheers
>
>
> > https://bugs.launchpad.net/bugs/1864642
> > Signed-off-by: Po-Hsu Lin <[email protected]>
> > ---
> > tools/testing/selftests/powerpc/benchmarks/Makefile | 2 ++
> > tools/testing/selftests/powerpc/benchmarks/settings | 1 +
> > tools/testing/selftests/powerpc/dscr/Makefile | 2 ++
> > tools/testing/selftests/powerpc/dscr/settings | 1 +
> > tools/testing/selftests/powerpc/signal/Makefile | 2 ++
> > tools/testing/selftests/powerpc/signal/settings | 1 +
> > tools/testing/selftests/powerpc/tm/Makefile | 2 ++
> > tools/testing/selftests/powerpc/tm/settings | 1 +
> > 8 files changed, 12 insertions(+)
> > create mode 100644 tools/testing/selftests/powerpc/benchmarks/settings
> > create mode 100644 tools/testing/selftests/powerpc/dscr/settings
> > create mode 100644 tools/testing/selftests/powerpc/signal/settings
> > create mode 100644 tools/testing/selftests/powerpc/tm/settings
> >
> > diff --git a/tools/testing/selftests/powerpc/benchmarks/Makefile b/tools/testing/selftests/powerpc/benchmarks/Makefile
> > index d40300a..a32a6ab 100644
> > --- a/tools/testing/selftests/powerpc/benchmarks/Makefile
> > +++ b/tools/testing/selftests/powerpc/benchmarks/Makefile
> > @@ -2,6 +2,8 @@
> > TEST_GEN_PROGS := gettimeofday context_switch fork mmap_bench futex_bench null_syscall
> > TEST_GEN_FILES := exec_target
> >
> > +TEST_FILES := settings
> > +
> > CFLAGS += -O2
> >
> > top_srcdir = ../../../../..
> > diff --git a/tools/testing/selftests/powerpc/benchmarks/settings b/tools/testing/selftests/powerpc/benchmarks/settings
> > new file mode 100644
> > index 0000000..e7b9417
> > --- /dev/null
> > +++ b/tools/testing/selftests/powerpc/benchmarks/settings
> > @@ -0,0 +1 @@
> > +timeout=0
> > diff --git a/tools/testing/selftests/powerpc/dscr/Makefile b/tools/testing/selftests/powerpc/dscr/Makefile
> > index 5df4763..cfa6eed 100644
> > --- a/tools/testing/selftests/powerpc/dscr/Makefile
> > +++ b/tools/testing/selftests/powerpc/dscr/Makefile
> > @@ -3,6 +3,8 @@ TEST_GEN_PROGS := dscr_default_test dscr_explicit_test dscr_user_test \
> > dscr_inherit_test dscr_inherit_exec_test dscr_sysfs_test \
> > dscr_sysfs_thread_test
> >
> > +TEST_FILES := settings
> > +
> > top_srcdir = ../../../../..
> > include ../../lib.mk
> >
> > diff --git a/tools/testing/selftests/powerpc/dscr/settings b/tools/testing/selftests/powerpc/dscr/settings
> > new file mode 100644
> > index 0000000..e7b9417
> > --- /dev/null
> > +++ b/tools/testing/selftests/powerpc/dscr/settings
> > @@ -0,0 +1 @@
> > +timeout=0
> > diff --git a/tools/testing/selftests/powerpc/signal/Makefile b/tools/testing/selftests/powerpc/signal/Makefile
> > index 113838f..153fafc 100644
> > --- a/tools/testing/selftests/powerpc/signal/Makefile
> > +++ b/tools/testing/selftests/powerpc/signal/Makefile
> > @@ -5,6 +5,8 @@ CFLAGS += -maltivec
> > $(OUTPUT)/signal_tm: CFLAGS += -mhtm
> > $(OUTPUT)/sigfuz: CFLAGS += -pthread -m64
> >
> > +TEST_FILES := settings
> > +
> > top_srcdir = ../../../../..
> > include ../../lib.mk
> >
> > diff --git a/tools/testing/selftests/powerpc/signal/settings b/tools/testing/selftests/powerpc/signal/settings
> > new file mode 100644
> > index 0000000..e7b9417
> > --- /dev/null
> > +++ b/tools/testing/selftests/powerpc/signal/settings
> > @@ -0,0 +1 @@
> > +timeout=0
> > diff --git a/tools/testing/selftests/powerpc/tm/Makefile b/tools/testing/selftests/powerpc/tm/Makefile
> > index b15a1a3..7b99d09 100644
> > --- a/tools/testing/selftests/powerpc/tm/Makefile
> > +++ b/tools/testing/selftests/powerpc/tm/Makefile
> > @@ -7,6 +7,8 @@ TEST_GEN_PROGS := tm-resched-dscr tm-syscall tm-signal-msr-resv tm-signal-stack
> > $(SIGNAL_CONTEXT_CHK_TESTS) tm-sigreturn tm-signal-sigreturn-nt \
> > tm-signal-context-force-tm tm-poison
> >
> > +TEST_FILES := settings
> > +
> > top_srcdir = ../../../../..
> > include ../../lib.mk
> >
> > diff --git a/tools/testing/selftests/powerpc/tm/settings b/tools/testing/selftests/powerpc/tm/settings
> > new file mode 100644
> > index 0000000..e7b9417
> > --- /dev/null
> > +++ b/tools/testing/selftests/powerpc/tm/settings
> > @@ -0,0 +1 @@
> > +timeout=0
> > --
> > 2.7.4