[PATCH 0/3] perf tools: Random fixes for DWARF unwind

From: Namhyung Kim
Date: Tue Dec 12 2023 - 02:05:55 EST


Hello,

I've found a couple of issues on the unwind code while I'm playing with
the JIT-dump code for the CPython. The code assumes normal DSOs mapped
from the beginning of the file and aligned to the page size. But it's
not true for the JIT-dumped DSOs which are generated for each function.

Depending on the JIT implementation, the code address and accompanied
ELF info (like ELF file headers and unwind info) can be overlapped to
adjacent (JIT-dumped) DSOs. So it should take more care when it
calculates the mapping address for the DSO.

It seems these changes need to go to the stable trees but they are
changed a lot since then so I'm not sure.

Thanks,
Namhyung


Namhyung Kim (3):
perf genelf: Set ELF program header addresses properly
perf unwind-libdw: Handle JIT-generated DSOs properly
perf unwind-libunwind: Fix base address for .eh_frame

tools/perf/util/genelf.c | 6 +++---
tools/perf/util/unwind-libdw.c | 21 +++++++++++++++++----
tools/perf/util/unwind-libunwind-local.c | 2 +-
3 files changed, 21 insertions(+), 8 deletions(-)

--
2.43.0.472.g3155946c3a-goog