On Thu, Jul 3, 2025 at 5:22 AM Menglong Dong <menglong8.dong@xxxxxxxxx> wrote: > > For now, the libbpf find the btf type id by loop all the btf types and > compare its name, which is inefficient if we have many functions to > lookup. > > We add the "use_hash" to the function args of find_kernel_btf_id() to > indicate if we should lookup the btf type id by hash. The hash table will > be initialized if it has not yet. Or we could build hashtable-based index outside of struct btf for a specific use case, because there is no one perfect hashtable-based indexing that can be done generically (e.g., just by name, or name+kind, or kind+name, or some more complicated lookup key) and cover all potential use cases. I'd prefer not to get into a problem of defining and building indexes and leave it to callers (even if the caller is other part of libbpf itself). > > Signed-off-by: Menglong Dong <dongml2@xxxxxxxxxxxxxxx> > --- > tools/lib/bpf/btf.c | 102 +++++++++++++++++++++++++++++++++++++++ > tools/lib/bpf/btf.h | 6 +++ > tools/lib/bpf/libbpf.c | 37 +++++++++++--- > tools/lib/bpf/libbpf.map | 3 ++ > 4 files changed, 140 insertions(+), 8 deletions(-) > [...]