在 2025/7/2 04:39, Alexei Starovoitov 写道:
On Fri, Jun 27, 2025 at 1:23 AM Tao Chen <chen.dyl...@linux.dev> wrote:

Alexei suggested, 'link_type' can be more precise and differentiate
for human in fdinfo. In fact BPF_LINK_TYPE_KPROBE_MULTI includes
kretprobe_multi type, the same as BPF_LINK_TYPE_UPROBE_MULTI, so we
can show it more concretely.

link_type:      kprobe_multi
link_id:        1
prog_tag:       d2b307e915f0dd37
...
link_type:      kretprobe_multi
link_id:        2
prog_tag:       ab9ea0545870781d
...
link_type:      uprobe_multi
link_id:        9
prog_tag:       e729f789e34a8eca
...
link_type:      uretprobe_multi
link_id:        10
prog_tag:       7db356c03e61a4d4

As Andrii suggested attach_type can be recorded in bpf_link, there is
still a 6 byte hole in bpf_link, we can fill the hole with attach_type
soon.

Co-authored-by: Jiri Olsa <jo...@kernel.org>
Signed-off-by: Tao Chen <chen.dyl...@linux.dev>
---
  include/linux/bpf.h      |  1 +
  kernel/bpf/syscall.c     |  9 ++++++++-
  kernel/trace/bpf_trace.c | 10 ++++------
  3 files changed, 13 insertions(+), 7 deletions(-)

Change list:
   v5 -> v6:
     - Move flags into bpf_link to get retprobe info
       directly.(Alexei, Jiri)
   v5:
   https://lore.kernel.org/bpf/20250623134342.227347-1-chen.dyl...@linux.dev

   v4 -> v5:
     - Add patch1 to show precise link_type for
       {uprobe,kprobe}_multi.(Alexei)
     - patch2,3 just remove type field, which will be showed in
       link_type
   v4:
   https://lore.kernel.org/bpf/20250619034257.70520-1-chen.dyl...@linux.dev

   v3 -> v4:
     - use %pS to print func info.(Alexei)
   v3:
   https://lore.kernel.org/bpf/20250616130233.451439-1-chen.dyl...@linux.dev

   v2 -> v3:
     - show info in one line for multi events.(Jiri)
   v2:
   https://lore.kernel.org/bpf/20250615150514.418581-1-chen.dyl...@linux.dev

   v1 -> v2:
     - replace 'func_cnt' with 'uprobe_cnt'.(Andrii)
     - print func name is more readable and security for kprobe_multi.(Alexei)
   v1:
   https://lore.kernel.org/bpf/20250612115556.295103-1-chen.dyl...@linux.dev

diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index 5b25d278409..3d8fecc9b17 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -1702,6 +1702,7 @@ struct bpf_link {
          * link's semantics is determined by target attach hook
          */
         bool sleepable;
+       u32 flags :8;

There is a 7-byte hole here.
Let's use 'u32 flags' right now and optimize later if necessary.

Ok, will change it in v7.

--
Best Regards
Tao Chen

Reply via email to