Messages in this thread | | | Date | Tue, 18 Jan 2022 20:43:43 +0800 | From | Leo Yan <> | Subject | Re: [PATCH] perf test: Test 73 Sig_trap fails on s390 |
| |
On Tue, Jan 18, 2022 at 12:40:04PM +0100, Marco Elver wrote:
[...]
> > 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/ > > Does this limitation also exist for address watchpoints? The sigtrap > test does not make use of instruction breakpoints, but instead just > sets up a watchpoint on access to a data address.
Yes, after reading the code, the flow for either instrution breakpoint or watchpoint both use the single step [1], thus the signal handler will take the single step execution and lead to the infinite loop.
I am not the best person to answer this question; @Will, could you confirm for this? Thanks!
Leo
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/kernel/hw_breakpoint.c
| |