Re: [PATCH] perf test: Test 73 Sig_trap fails on s390
From: Leo Yan
Date: Tue Jan 18 2022 - 04:18:38 EST
On Mon, Jan 17, 2022 at 03:39:10PM +0000, John Garry wrote:
> On 16/12/2021 15:48, Marco Elver wrote:
>
> +
>
> > 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!
> >
>
> I am finding that this test hangs on my arm64 machine:
>
> john@debian:~/kernel-dev2/tools/perf$ sudo ./perf test -vvv 73
> 73: Sigtrap:
> --- start ---
> test child forked, pid 45193
Both Arm and Arm64 platforms cannot support signal handler with
breakpoint, please see the details in [1]. So I think we need
something like below:
static int test__sigtrap(struct test_suite *test __maybe_unused, int subtest __maybe_unused)
{
...
if (!BP_SIGNAL_IS_SUPPORTED) {
pr_debug("Test not supported on this architecture");
return TEST_SKIP;
}
...
}
Since we have defined BP_SIGNAL_IS_SUPPORTED, I think we can reuse it at
here.
[1] https://lore.kernel.org/lkml/157169993406.29376.12473771029179755767.tip-bot2@tip-bot2/
> And fails on my x86 broadwell machine:
>
> john@localhost:~/kernel-dev2/tools/perf> sudo ./perf test -v 73
> 73: Sigtrap :
> --- start ---
> test child forked, pid 22255
> FAILED sys_perf_event_open(): Argument list too long
> test child finished with -1
> ---- end ----
> Sigtrap: FAILED!
> john@localhost:~/kernel-dev2/tools/perf>
It is a bit suprise for the failure on x86, as I remembered x86 platform
can support signal handler with hw breakpoint. And from the error
"Argument list too long", it should be a different issue from other
archs.
Thanks,
Leo