On Fri, Feb 27, 2026 at 8:40 AM Sun Jian <[email protected]> wrote: > > The kprobe_multi subtests rely on bpf_testmod fentry ksyms. > > When bpf_testmod isn't available, libbpf fails to resolve > bpf_testmod_fentry_test* and skeleton load fails with -ESRCH, causing > false failures. > > Skip these subtests when env.has_testmod is false. > > Signed-off-by: Sun Jian <[email protected]> > --- > tools/testing/selftests/bpf/prog_tests/bpf_cookie.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c > b/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c > index 75f4dff7d042..50f5e11e6e65 100644 > --- a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c > +++ b/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c > @@ -105,6 +105,11 @@ static void kprobe_multi_link_api_subtest(void) > unsigned long long addrs[8]; > __u64 cookies[8]; > > + if (!env.has_testmod) { > + test__skip(); > + return; > + } > + > if (!ASSERT_OK(load_kallsyms(), "load_kallsyms")) > goto cleanup; > > @@ -192,6 +197,11 @@ static void kprobe_multi_attach_api_subtest(void) > }; > __u64 cookies[8]; > > + if (!env.has_testmod) { > + test__skip(); > + return; > + } > + > skel = kprobe_multi__open_and_load(); > if (!ASSERT_OK_PTR(skel, "fentry_raw_skel_load")) > goto cleanup; > @@ -451,7 +461,7 @@ static void pe_subtest(struct test_bpf_cookie *skel) > attr.type = PERF_TYPE_SOFTWARE; > attr.config = PERF_COUNT_SW_CPU_CLOCK; > attr.sample_period = 100000; > - pfd = syscall(__NR_perf_event_open, &attr, -1, 0, -1, > PERF_FLAG_FD_CLOEXEC); > + pfd = syscall(__NR_perf_event_open, &attr, 0, -1, -1, > PERF_FLAG_FD_CLOEXEC);
This part is not explained in the commit log. pw-bot: cr

