mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-21 08:49:06 +08:00
libbpf: report vmlinux vs module name when dealing with ksyms
Currently libbpf always reports "kernel" as a source of ksym BTF type, which is ambiguous given ksym's BTF can come from either vmlinux or kernel module BTFs. Make this explicit and log module name, if used BTF is from kernel module. Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/r/20230418002148.3255690-3-andrii@kernel.org Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Andrii Nakryiko
parent
0db753a9f8
commit
6fd310547d
@@ -7538,8 +7538,9 @@ static int bpf_object__resolve_ksym_func_btf_id(struct bpf_object *obj,
|
||||
ret = bpf_core_types_are_compat(obj->btf, local_func_proto_id,
|
||||
kern_btf, kfunc_proto_id);
|
||||
if (ret <= 0) {
|
||||
pr_warn("extern (func ksym) '%s': func_proto [%d] incompatible with kernel [%d]\n",
|
||||
ext->name, local_func_proto_id, kfunc_proto_id);
|
||||
pr_warn("extern (func ksym) '%s': func_proto [%d] incompatible with %s [%d]\n",
|
||||
ext->name, local_func_proto_id,
|
||||
mod_btf ? mod_btf->name : "vmlinux", kfunc_proto_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -7573,8 +7574,8 @@ static int bpf_object__resolve_ksym_func_btf_id(struct bpf_object *obj,
|
||||
* {kernel_btf_id, kernel_btf_obj_fd} -> fixup ld_imm64.
|
||||
*/
|
||||
ext->ksym.kernel_btf_obj_fd = mod_btf ? mod_btf->fd : 0;
|
||||
pr_debug("extern (func ksym) '%s': resolved to kernel [%d]\n",
|
||||
ext->name, kfunc_id);
|
||||
pr_debug("extern (func ksym) '%s': resolved to %s [%d]\n",
|
||||
ext->name, mod_btf ? mod_btf->name : "vmlinux", kfunc_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user