On Mon, Nov 10, 2025 at 5:49 AM Menglong Dong <[email protected]> wrote: > > Remove the "trigger_count" in trigger_bench.c and reuse trigger_driver() > instead for trigger_kernel_count_setup(). > > With the calling to bpf_get_numa_node_id(), the result for "kernel_count" > will become a little more accurate.
"more accurate" is a bit misleading here. I think you meant that it will do same amount of helper calls as fentry and other benchmarks, and in that sense will be closer as a baseline comparison, is that right? Can you clarify that in the next revision, please? > > It will also easier if we want to test the performance of livepatch, just > hook the bpf_get_numa_node_id() and run the "kernel_count" bench trigger. > > Signed-off-by: Menglong Dong <[email protected]> > --- > .../selftests/bpf/benchs/bench_trigger.c | 5 +---- > .../testing/selftests/bpf/progs/trigger_bench.c | 17 +++++------------ > 2 files changed, 6 insertions(+), 16 deletions(-) > > diff --git a/tools/testing/selftests/bpf/benchs/bench_trigger.c > b/tools/testing/selftests/bpf/benchs/bench_trigger.c > index 1e2aff007c2a..34fd8fa3b803 100644 > --- a/tools/testing/selftests/bpf/benchs/bench_trigger.c > +++ b/tools/testing/selftests/bpf/benchs/bench_trigger.c > @@ -179,11 +179,8 @@ static void trigger_syscall_count_setup(void) > static void trigger_kernel_count_setup(void) > { > setup_ctx(); > - bpf_program__set_autoload(ctx.skel->progs.trigger_driver, false); > - bpf_program__set_autoload(ctx.skel->progs.trigger_count, true); > + ctx.skel->rodata->kernel_count = 1; > load_ctx(); > - /* override driver program */ > - ctx.driver_prog_fd = bpf_program__fd(ctx.skel->progs.trigger_count); > } > > static void trigger_kprobe_setup(void) > diff --git a/tools/testing/selftests/bpf/progs/trigger_bench.c > b/tools/testing/selftests/bpf/progs/trigger_bench.c > index 3d5f30c29ae3..6564d1909c7b 100644 > --- a/tools/testing/selftests/bpf/progs/trigger_bench.c > +++ b/tools/testing/selftests/bpf/progs/trigger_bench.c > @@ -39,26 +39,19 @@ int bench_trigger_uprobe_multi(void *ctx) > return 0; > } > > +const volatile int kernel_count = 0; nit: use bool? it's not a counter, no need to use int here > const volatile int batch_iters = 0; > > -SEC("?raw_tp") > -int trigger_count(void *ctx) > -{ > - int i; > - > - for (i = 0; i < batch_iters; i++) > - inc_counter(); > - > - return 0; > -} > - > SEC("?raw_tp") > int trigger_driver(void *ctx) > { > int i; > > - for (i = 0; i < batch_iters; i++) > + for (i = 0; i < batch_iters; i++) { > (void)bpf_get_numa_node_id(); /* attach point for > benchmarking */ > + if (kernel_count) > + inc_counter(); > + } tbh, I wouldn't touch trigger_driver() adding unnecessary if conditions to it. It's fine, IMO, to have bpf_get_numa_node_id() call in trigger_count() for being closer in terms of actual work being done, but I'd keep trigger_driver and trigger_count separate (maybe renaming trigger_count to trigger_kernel_count would help, I don't know) pw-bot: cr > > return 0; > } > -- > 2.51.2 >

