summaryrefslogtreecommitdiff
path: root/tools/bpf/bpftool/btf.c
diff options
context:
space:
mode:
authorQuentin Monnet <quentin@isovalent.com>2021-10-23 23:51:54 +0300
committerAndrii Nakryiko <andrii@kernel.org>2021-10-26 03:31:39 +0300
commitd6699f8e0f834b40db35466f704705ae757be11a (patch)
tree3e31240e3364c28bc0a4cdd1840b0c78018be12d /tools/bpf/bpftool/btf.c
parent2828d0d75b738c9cd98080c530b7b7ea90b279dd (diff)
downloadlinux-d6699f8e0f834b40db35466f704705ae757be11a.tar.xz
bpftool: Switch to libbpf's hashmap for PIDs/names references
In order to show PIDs and names for processes holding references to BPF programs, maps, links, or BTF objects, bpftool creates hash maps to store all relevant information. This commit is part of a set that transitions from the kernel's hash map implementation to the one coming with libbpf. The motivation is to make bpftool less dependent of kernel headers, to ease the path to a potential out-of-tree mirror, like libbpf has. This is the third and final step of the transition, in which we convert the hash maps used for storing the information about the processes holding references to BPF objects (programs, maps, links, BTF), and at last we drop the inclusion of tools/include/linux/hashtable.h. Note: Checkpatch complains about the use of __weak declarations, and the missing empty lines after the bunch of empty function declarations when compiling without the BPF skeletons (none of these were introduced in this patch). We want to keep things as they are, and the reports should be safe to ignore. Signed-off-by: Quentin Monnet <quentin@isovalent.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20211023205154.6710-6-quentin@isovalent.com
Diffstat (limited to 'tools/bpf/bpftool/btf.c')
-rw-r--r--tools/bpf/bpftool/btf.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/tools/bpf/bpftool/btf.c b/tools/bpf/bpftool/btf.c
index 11dd31b6e730..015d2758f826 100644
--- a/tools/bpf/bpftool/btf.c
+++ b/tools/bpf/bpftool/btf.c
@@ -9,7 +9,6 @@
#include <string.h>
#include <unistd.h>
#include <linux/btf.h>
-#include <linux/hashtable.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -797,7 +796,7 @@ show_btf_plain(struct bpf_btf_info *info, int fd,
hash_field_as_u32(entry->value));
}
- emit_obj_refs_plain(&refs_table, info->id, "\n\tpids ");
+ emit_obj_refs_plain(refs_table, info->id, "\n\tpids ");
printf("\n");
}
@@ -830,7 +829,7 @@ show_btf_json(struct bpf_btf_info *info, int fd,
}
jsonw_end_array(json_wtr); /* map_ids */
- emit_obj_refs_json(&refs_table, info->id, json_wtr); /* pids */
+ emit_obj_refs_json(refs_table, info->id, json_wtr); /* pids */
jsonw_bool_field(json_wtr, "kernel", info->kernel_btf);
@@ -961,7 +960,7 @@ static int do_show(int argc, char **argv)
exit_free:
hashmap__free(btf_prog_table);
hashmap__free(btf_map_table);
- delete_obj_refs_table(&refs_table);
+ delete_obj_refs_table(refs_table);
return err;
}