diff options
author | Alexei Starovoitov <ast@kernel.org> | 2023-05-19 20:06:45 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2023-05-19 20:06:53 +0300 |
commit | 9343184cb31fef673566ff37c41a9f418deb9de3 (patch) | |
tree | b728ae6b18abafff2ada4dcf683230c1b929ebad /tools | |
parent | effcf62416240e5ec0eded0ea2644c48d2c7c9f1 (diff) | |
parent | d7e45eb4802bbb3343624711e43d23b22fe7cc55 (diff) | |
download | linux-9343184cb31fef673566ff37c41a9f418deb9de3.tar.xz |
Merge branch 'bpf: Show target_{obj,btf}_id for tracing link'
Yafang Shao says:
====================
The target_btf_id can help us understand which kernel function is
linked by a tracing prog. The target_btf_id and target_obj_id have
already been exposed to userspace, so we just need to show them.
For some other link types like perf_event and kprobe_multi, it is not
easy to find which functions are attached either. We may support
->fill_link_info for them in the future.
v1->v2:
- Skip showing them in the plain output for the old kernels. (Quentin)
- Coding improvement. (Andrii)
====================
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/bpf/bpftool/link.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/bpf/bpftool/link.c b/tools/bpf/bpftool/link.c index 243b74e18e51..2d786072ed0d 100644 --- a/tools/bpf/bpftool/link.c +++ b/tools/bpf/bpftool/link.c @@ -195,6 +195,8 @@ static int show_link_close_json(int fd, struct bpf_link_info *info) show_link_attach_type_json(info->tracing.attach_type, json_wtr); + jsonw_uint_field(json_wtr, "target_obj_id", info->tracing.target_obj_id); + jsonw_uint_field(json_wtr, "target_btf_id", info->tracing.target_btf_id); break; case BPF_LINK_TYPE_CGROUP: jsonw_lluint_field(json_wtr, "cgroup_id", @@ -375,6 +377,10 @@ static int show_link_close_plain(int fd, struct bpf_link_info *info) printf("\n\tprog_type %u ", prog_info.type); show_link_attach_type_plain(info->tracing.attach_type); + if (info->tracing.target_obj_id || info->tracing.target_btf_id) + printf("\n\ttarget_obj_id %u target_btf_id %u ", + info->tracing.target_obj_id, + info->tracing.target_btf_id); break; case BPF_LINK_TYPE_CGROUP: printf("\n\tcgroup_id %zu ", (size_t)info->cgroup.cgroup_id); |