On Sun, Mar 15, 2026 at 01:42:27PM +0800, Sun Jian wrote: > trampoline_count fills all trampoline attachment slots for a single > target function and verifies that one extra attach fails with -E2BIG. > > It currently targets bpf_modify_return_test, which is also used by > modify_return and get_func_ip_test. When those tests run in parallel, > they can contend for the same per-function trampoline quota and > cause unexpected attach failures. This issue is currently masked by > harness serialization. > > Add a dedicated bpf_trampoline_count_test target and switch > trampoline_count to use it. This keeps the test semantics unchanged > while isolating it from other modify_return-based selftests, so it no > longer needs to run in serial mode. Remove the TODO comment as > well. > > Tested: > ./test_progs -t trampoline_count -vv > ./test_progs -t modify_return -vv > ./test_progs -t get_func_ip_test -vv > ./test_progs -j$(nproc) -t trampoline_count -vv > ./test_progs -j$(nproc) -t > trampoline_count,modify_return,get_func_ip_test -vv
I was able to reproduce the issue here then validate the fix. I however had to include several more tests that use bpf_modify_return_test (get_func_args_test, kprobe_multi_test, missed, and bpf_cookie) before I could reliably reproduce (in a loop that runs until it fails with an unexpected E2BIG). Tested-by: Paul Chaignon <[email protected]> [...]

