Re: [PATCH] perf test: Test 73 Sig_trap fails on s390

From: Marco Elver
Date: Thu Dec 16 2021 - 10:48:29 EST


On Thu, 16 Dec 2021 at 16:15, Thomas Richter <tmricht@xxxxxxxxxxxxx> wrote:
>
> In Linux next kernel
> Commit 5504f67944484 ("perf test sigtrap: Add basic stress test for sigtrap handling")
> introduced the new test which uses breakpoint events.
> These events are not supported on s390 and PowerPC and always fail:
>
> # perf test -F 73
> 73: Sigtrap : FAILED!
> #
>
> Fix it the same way as in the breakpoint tests in file
> tests/bp_account.c where these type of tests are skipped on
> s390 and PowerPC platforms.
>
> With this patch skip this test on both platforms.
>
> Output after:
> # ./perf test -F 73
> 73: Sigtrap
>
> Fixes: 5504f67944484 ("perf test sigtrap: Add basic stress test for sigtrap handling")
>
> Cc: Marco Elver <elver@xxxxxxxxxx>
> Signed-off-by: Thomas Richter <tmricht@xxxxxxxxxxxxx>

Acked-by: Marco Elver <elver@xxxxxxxxxx>

Thanks, and sorry for missing this case!

> ---
> tools/perf/tests/sigtrap.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/tools/perf/tests/sigtrap.c b/tools/perf/tests/sigtrap.c
> index 1004bf0e7cc9..1f147fe6595f 100644
> --- a/tools/perf/tests/sigtrap.c
> +++ b/tools/perf/tests/sigtrap.c
> @@ -22,6 +22,19 @@
> #include "tests.h"
> #include "../perf-sys.h"
>
> +/*
> + * PowerPC and S390 do not support creation of instruction breakpoints using the
> + * perf_event interface.
> + *
> + * Just disable the test for these architectures until these issues are
> + * resolved.
> + */
> +#if defined(__powerpc__) || defined(__s390x__)
> +#define BP_ACCOUNT_IS_SUPPORTED 0
> +#else
> +#define BP_ACCOUNT_IS_SUPPORTED 1
> +#endif
> +
> #define NUM_THREADS 5
>
> static struct {
> @@ -122,6 +135,11 @@ static int test__sigtrap(struct test_suite *test __maybe_unused, int subtest __m
> char sbuf[STRERR_BUFSIZE];
> int i, fd, ret = TEST_FAIL;
>
> + if (!BP_ACCOUNT_IS_SUPPORTED) {
> + pr_debug("Test not supported on this architecture");
> + return TEST_SKIP;
> + }
> +
> pthread_barrier_init(&barrier, NULL, NUM_THREADS + 1);
>
> action.sa_flags = SA_SIGINFO | SA_NODEFER;
> --
> 2.33.1
>