Re: [RFC PATCH v4 1/7] libbpf: Extract BTF type remapping logic into helper function

From: Eduard Zingerman

Date: Tue Nov 04 2025 - 19:36:12 EST


On Tue, 2025-11-04 at 16:11 -0800, Andrii Nakryiko wrote:

[...]

> > @@ -3400,6 +3400,37 @@ int btf_ext__set_endianness(struct btf_ext *btf_ext, enum btf_endianness endian)
> > return 0;
> > }
> >
> > +static int btf_remap_types(struct btf *btf, struct btf_ext *btf_ext,
> > + btf_remap_type_fn visit, void *ctx)
>
> tbh, my goal is to reduce the amount of callback usage within libbpf,
> not add more of it...
>
> I don't like this refactoring. We should convert
> btf_ext_visit_type_ids() into iterators, have btf_field_iter_init +
> btf_field_iter_next usable in for_each() form, and not try to reuse 5
> lines of code. See my comments in the next patch.

Remapping types is a concept.
I hate duplicating code for concepts.
Similarly, having patch #3 == patch #5 and patch #4 == patch #6 is
plain ugly. Just waiting for a bug because we changed the one but
forgot to change another in a year or two.

[...]