mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-20 09:34:44 +08:00
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>
This commit is contained in:
commit
9343184cb3
@ -2968,10 +2968,17 @@ static void bpf_tracing_link_show_fdinfo(const struct bpf_link *link,
|
||||
{
|
||||
struct bpf_tracing_link *tr_link =
|
||||
container_of(link, struct bpf_tracing_link, link.link);
|
||||
u32 target_btf_id, target_obj_id;
|
||||
|
||||
bpf_trampoline_unpack_key(tr_link->trampoline->key,
|
||||
&target_obj_id, &target_btf_id);
|
||||
seq_printf(seq,
|
||||
"attach_type:\t%d\n",
|
||||
tr_link->attach_type);
|
||||
"attach_type:\t%d\n"
|
||||
"target_obj_id:\t%u\n"
|
||||
"target_btf_id:\t%u\n",
|
||||
tr_link->attach_type,
|
||||
target_obj_id,
|
||||
target_btf_id);
|
||||
}
|
||||
|
||||
static int bpf_tracing_link_fill_link_info(const struct bpf_link *link,
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user