Messages in this thread | ![/](/images/icornerl.gif) | | From | Ian Rogers <> | Date | Tue, 12 Dec 2023 10:10:37 -0800 | Subject | Re: [PATCH 0/3] perf tools: Random fixes for DWARF unwind |
| |
On Mon, Dec 11, 2023 at 11:05 PM Namhyung Kim <namhyung@kernel.org> wrote: > > 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.
We have a JIT test in: https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/tree/tools/perf/tests/shell/test_java_symbol.sh?h=perf-tools-next
It'd be great if we could do similar for CPython.
Thanks, Ian
> 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 >
| ![\](/images/icornerr.gif) |