]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
libbpf: Add bpf_link_create support for tracing_multi link
authorJiri Olsa <jolsa@kernel.org>
Sat, 6 Jun 2026 12:39:43 +0000 (14:39 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Sun, 7 Jun 2026 17:03:02 +0000 (10:03 -0700)
Adding bpf_link_create support for tracing_multi link with
new tracing_multi record in struct bpf_link_create_opts.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20260606123955.345967-19-jolsa@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/lib/bpf/bpf.c
tools/lib/bpf/bpf.h

index bc513aa8f4041fd696cd63e85beea17312ebf24a..f37e3416f61a57af13fb1c4b60d4ba809669476f 100644 (file)
@@ -845,6 +845,15 @@ int bpf_link_create(int prog_fd, int target_fd,
                if (!OPTS_ZEROED(opts, uprobe_multi))
                        return libbpf_err(-EINVAL);
                break;
+       case BPF_TRACE_FENTRY_MULTI:
+       case BPF_TRACE_FEXIT_MULTI:
+       case BPF_TRACE_FSESSION_MULTI:
+               attr.link_create.tracing_multi.ids = ptr_to_u64(OPTS_GET(opts, tracing_multi.ids, 0));
+               attr.link_create.tracing_multi.cookies = ptr_to_u64(OPTS_GET(opts, tracing_multi.cookies, 0));
+               attr.link_create.tracing_multi.cnt = OPTS_GET(opts, tracing_multi.cnt, 0);
+               if (!OPTS_ZEROED(opts, tracing_multi))
+                       return libbpf_err(-EINVAL);
+               break;
        case BPF_TRACE_RAW_TP:
        case BPF_TRACE_FENTRY:
        case BPF_TRACE_FEXIT:
index 2312900a32631db535d31f965b83e69403a14bd5..012354131cf66867977baa89bdcbea916ee5a0b9 100644 (file)
@@ -469,6 +469,11 @@ struct bpf_link_create_opts {
                        __u32 relative_id;
                        __u64 expected_revision;
                } cgroup;
+               struct {
+                       const __u32 *ids;
+                       const __u64 *cookies;
+                       __u32 cnt;
+               } tracing_multi;
        };
        size_t :0;
 };