[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CADxym3ZBmr1USGY08HcbpV6=G0SjZ6khoOb0R+L2R11AEOKzFA@mail.gmail.com>
Date: Sat, 15 Nov 2025 10:45:09 +0800
From: Menglong Dong <menglong8.dong@...il.com>
To: Andrii Nakryiko <andrii.nakryiko@...il.com>
Cc: andrii@...nel.org, ast@...nel.org, daniel@...earbox.net,
martin.lau@...ux.dev, eddyz87@...il.com, song@...nel.org,
yonghong.song@...ux.dev, john.fastabend@...il.com, kpsingh@...nel.org,
sdf@...ichev.me, haoluo@...gle.com, jolsa@...nel.org, shuah@...nel.org,
mingo@...nel.org, jiang.biao@...ux.dev, bpf@...r.kernel.org,
linux-kselftest@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH bpf-next] selftests/bpf: simplify the kernel_count bench trigger
On Sat, Nov 15, 2025 at 4:46 AM Andrii Nakryiko
<andrii.nakryiko@...il.com> wrote:
>
> On Mon, Nov 10, 2025 at 5:49 AM Menglong Dong <menglong8.dong@...il.com> 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?
Yeah, this is what I mean. The call to "bpf_get_numa_node_id" should
be considered as the baseline comparison.
>
> >
> > 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 <dongml2@...natelecom.cn>
> > ---
> > .../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)
Ah, OK! I'll add the call to bpf_get_numa_node_id() in trigger_count()
instead. I think the "trigger_kernel_count" makes more sense to me.
Thanks!
Menglong Dong
>
> pw-bot: cr
>
> >
> > return 0;
> > }
> > --
> > 2.51.2
> >
Powered by blists - more mailing lists