I think the BTF work needs to be better documented; at the moment the only way to determine how BTF sections are structured is to read through the headers, and cross-reference with the DWARF spec to guess at the semantics of various fields. I've been working on adding BTF support to ebpf_asm, and finding very frustrating the amount of guesswork required. Therefore please make sure that each patch extending the BTF format includes documentation patches describing both the layout and the semantics of the new extensions. For example in patch #9 there is no explanation of btf_ext_header.line_info_off and btf_ext_header.line_info_len (they're not even used by the code, so one cannot reverse-engineer it); while it's fairly clear that they indicate the bounds of the line_info subsection, there is no specification of what this subsection contains.
-Ed