lkml.org 
[lkml]   [2023]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [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
>

\
 
 \ /
  Last update: 2023-12-12 19:12    [W:0.101 / U:2.756 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site