mirror of
https://github.com/netdata/libbpf.git
synced 2026-11-06 01:40:15 +08:00
bpf: Add support for tracing multi link
Adding new link to allow to attach program to multiple function
BTF IDs. The link is represented by struct bpf_tracing_multi_link.
To configure the link, new fields are added to bpf_attr::link_create
to pass array of BTF IDs;
struct {
__aligned_u64 ids;
__u32 cnt;
} tracing_multi;
Each BTF ID represents function (BTF_KIND_FUNC) that the link will
attach bpf program to.
We use previously added bpf_trampoline_multi_attach/detach functions
to attach/detach the link.
The linkinfo/fdinfo callbacks will be implemented in following changes.
Note this is supported only for archs (x86_64) with ftrace direct and
have single ops support.
CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS &&
CONFIG_HAVE_SINGLE_FTRACE_DIRECT_OPS
Note using sort_r (instead of plain sort) in check_dup_ids, because we
will use the swap callback in following changes.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20260606123955.345967-14-jolsa@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
1 parent
4e48554f9f
commit
622bb934a9
2 files changed
+6
No files matched your search
@@ -1182,6 +1182,7 @@ enum bpf_link_type {
|
||||
BPF_LINK_TYPE_UPROBE_MULTI = 12,
|
||||
BPF_LINK_TYPE_NETKIT = 13,
|
||||
BPF_LINK_TYPE_SOCKMAP = 14,
|
||||
BPF_LINK_TYPE_TRACING_MULTI = 15,
|
||||
__MAX_BPF_LINK_TYPE,
|
||||
};
|
||||
|
||||
@@ -1877,6 +1878,10 @@ union bpf_attr {
|
||||
};
|
||||
__u64 expected_revision;
|
||||
} cgroup;
|
||||
struct {
|
||||
__aligned_u64 ids;
|
||||
__u32 cnt;
|
||||
} tracing_multi;
|
||||
};
|
||||
} link_create;
|
||||
|
||||
|
||||
Reference in new issue
Block a user