Now that libbpf supports sorted BTF types, add a check to determine whether binary search can be used for type lookups. Cc: Eduard Zingerman Cc: Alexei Starovoitov Cc: Andrii Nakryiko Cc: Alan Maguire Cc: Song Liu Signed-off-by: pengdonglin Signed-off-by: Donglin Peng --- tools/lib/bpf/btf.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c index 87e47f0b78ba..92c370fe9b79 100644 --- a/tools/lib/bpf/btf.c +++ b/tools/lib/bpf/btf.c @@ -1091,6 +1091,8 @@ static struct btf *btf_new(const void *data, __u32 size, struct btf *base_btf, b if (err) goto done; + btf_check_sorted(btf, btf->start_id); + done: if (err) { btf__free(btf); @@ -1714,6 +1716,7 @@ static void btf_invalidate_raw_data(struct btf *btf) free(btf->raw_data_swapped); btf->raw_data_swapped = NULL; } + btf->nr_sorted_types = 0; } /* Ensure BTF is ready to be modified (by splitting into a three memory @@ -5456,6 +5459,9 @@ static int btf_dedup_remap_types(struct btf_dedup *d) } } + if (d->sort_by_kind_name) + btf_check_sorted(d->btf, d->btf->start_id); + if (!d->btf_ext) return 0; -- 2.34.1