On Tue, Jan 18, 2022 at 12:40:04PM +0100, Marco Elver wrote:
[...]
Yes, after reading the code, the flow for either instrution breakpointBoth Arm and Arm64 platforms cannot support signal handler withDoes this limitation also exist for address watchpoints? The sigtrap
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/
test does not make use of instruction breakpoints, but instead just
sets up a watchpoint on access to a data address.
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
.