lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ