This work-in-progress series is an initial exploration of using function addresses to match between DWARF and ELF to improve matching accuracy, and as a prelude to potentially representing address info in BTF itself. It is missing ~1000 functions in the resultant generated vmlinux BTF where we currently cannot find an associated address in the DWARF; there may be further enhancements needed in our DWARF function address association, or we may ultimately need to use a hybrid address/name scheme, falling back to names where DWARF addresses are not present. When we come to encode addresses in BTF, they will be likely 32-bit section relative. This will allow for kernels that randomize the kernel base address. But that is not tackled yet; these initial changes are focused on improving the BTF generated using address-based matching, but not augmenting BTF with addresses yet. Would be great if folks could see if there are any potential improvements to make the matching process more complete, or just want to try out the series and compare before/after BTF encoding to see what is missing. Thanks! Alan Maguire (3): btf_encoder: collect ELF function addresses dwarf_loader: make more effort to retrieve a function address btf_encoder: use function address to match ELF -> DWARF btf_encoder.c | 78 ++++++++++++++++++++++++++------------------------ dwarf_loader.c | 29 ++++++++++++++++--- dwarves.h | 3 +- 3 files changed, 68 insertions(+), 42 deletions(-) -- 2.39.3