On Thu, 7 Dec 2023 at 20:12, Andrii Nakryiko andrii.nakryiko@gmail.com wrote:
On Thu, Dec 7, 2023 at 8:35 AM Kyle Huey me@kylehuey.com wrote:
The test sets a hardware breakpoint and uses a bpf program to suppress the side effects of a perf event sample, including I/O availability signals, SIGTRAPs, and decrementing the event counter limit, if the ip matches the expected value. Then the function with the breakpoint is executed multiple times to test that all effects behave as expected.
Signed-off-by: Kyle Huey khuey@kylehuey.com
.../selftests/bpf/prog_tests/perf_skip.c | 145 ++++++++++++++++++ .../selftests/bpf/progs/test_perf_skip.c | 15 ++ 2 files changed, 160 insertions(+) create mode 100644 tools/testing/selftests/bpf/prog_tests/perf_skip.c create mode 100644 tools/testing/selftests/bpf/progs/test_perf_skip.c
diff --git a/tools/testing/selftests/bpf/prog_tests/perf_skip.c b/tools/testing/selftests/bpf/prog_tests/perf_skip.c new file mode 100644 index 000000000000..f6fa9bfd9efa --- /dev/null +++ b/tools/testing/selftests/bpf/prog_tests/perf_skip.c @@ -0,0 +1,145 @@ +// SPDX-License-Identifier: GPL-2.0 +#define _GNU_SOURCE
+/* We need the latest siginfo from the kernel repo. */ +#include <asm/siginfo.h>
selftests are built with UAPI headers' copies under tools/include, so CI did catch a real issue, I think. Try copying include/uapi/asm-generic/siginfo.h into tools/include/uapi/asm-generic/siginfo.h ?
I believe parts of this were inspired by tools/testing/selftests/perf_events/sigtrap_threads.c - getting the kernel headers is allowed, as long as $(KHDR_INCLUDES) is added to CFLAGS. See tools/testing/selftests/perf_events/Makefile. Not sure it's appropriate for this test though, if you don't want to add KHDR_INCLUDES for everything.