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] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEf4BzZYS52gztmLgQtsehNDVwv7NBETh97zMk73ZqLL9uJ50Q@mail.gmail.com>
Date: Tue, 1 Jul 2025 13:37:58 -0700
From: Andrii Nakryiko <andrii.nakryiko@...il.com>
To: Tao Chen <chen.dylane@...ux.dev>
Cc: ast@...nel.org, daniel@...earbox.net, john.fastabend@...il.com, 
	andrii@...nel.org, martin.lau@...ux.dev, eddyz87@...il.com, song@...nel.org, 
	yonghong.song@...ux.dev, kpsingh@...nel.org, sdf@...ichev.me, 
	haoluo@...gle.com, jolsa@...nel.org, mattbobrowski@...gle.com, 
	rostedt@...dmis.org, mhiramat@...nel.org, mathieu.desnoyers@...icios.com, 
	bpf@...r.kernel.org, linux-kernel@...r.kernel.org, 
	linux-trace-kernel@...r.kernel.org
Subject: Re: [PATCH bpf-next v6 3/3] bpf: Add show_fdinfo for kprobe_multi

On Fri, Jun 27, 2025 at 1:23 AM Tao Chen <chen.dylane@...ux.dev> wrote:
>
> Show kprobe_multi link info with fdinfo, the info as follows:
>
> link_type:      kprobe_multi
> link_id:        1
> prog_tag:       33be53a4fd673e1d
> prog_id:        21
> kprobe_cnt:     8
> missed: 0
> cookie           func
> 1                bpf_fentry_test1+0x0/0x20
> 7                bpf_fentry_test2+0x0/0x20
> 2                bpf_fentry_test3+0x0/0x20
> 3                bpf_fentry_test4+0x0/0x20
> 4                bpf_fentry_test5+0x0/0x20
> 5                bpf_fentry_test6+0x0/0x20
> 6                bpf_fentry_test7+0x0/0x20
> 8                bpf_fentry_test8+0x0/0x10

two nits:

1) order of cookie. For uprobes you have cookie at the end, here in
the front. Given variable-sized func name, I'd move cookie to the
front for uprobes for consistency.

2) field sizing for cookie (16) is a) not sufficient for maximum
possible u64 (20 digits) and b) very wasteful in common case of small
numbers. So use tab instead of fixed-sized column? And why 16
character sizing for the func column? Just to have more spaces
emitted?


Other than that the series looks good to me.

pw-bot: cr


>
> Signed-off-by: Tao Chen <chen.dylane@...ux.dev>
> ---
>  kernel/trace/bpf_trace.c | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
>
> diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
> index 1c75f9c6c66..e8f070504c4 100644
> --- a/kernel/trace/bpf_trace.c
> +++ b/kernel/trace/bpf_trace.c
> @@ -2622,10 +2622,37 @@ static int bpf_kprobe_multi_link_fill_link_info(const struct bpf_link *link,
>         return err;
>  }
>
> +#ifdef CONFIG_PROC_FS
> +static void bpf_kprobe_multi_show_fdinfo(const struct bpf_link *link,
> +                                        struct seq_file *seq)
> +{
> +       struct bpf_kprobe_multi_link *kmulti_link;
> +
> +       kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link);
> +
> +       seq_printf(seq,
> +                  "kprobe_cnt:\t%u\n"
> +                  "missed:\t%lu\n",
> +                  kmulti_link->cnt,
> +                  kmulti_link->fp.nmissed);
> +
> +       seq_printf(seq, "%-16s %-16s\n", "cookie", "func");
> +       for (int i = 0; i < kmulti_link->cnt; i++) {
> +               seq_printf(seq,
> +                          "%-16llu %-16pS\n",
> +                          kmulti_link->cookies[i],
> +                          (void *)kmulti_link->addrs[i]);
> +       }
> +}
> +#endif
> +
>  static const struct bpf_link_ops bpf_kprobe_multi_link_lops = {
>         .release = bpf_kprobe_multi_link_release,
>         .dealloc_deferred = bpf_kprobe_multi_link_dealloc,
>         .fill_link_info = bpf_kprobe_multi_link_fill_link_info,
> +#ifdef CONFIG_PROC_FS
> +       .show_fdinfo = bpf_kprobe_multi_show_fdinfo,
> +#endif
>  };
>
>  static void bpf_kprobe_multi_cookie_swap(void *a, void *b, int size, const void *priv)
> --
> 2.48.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ