Jitted symbol names are lost
Describe the bug
hotspot fails to symbolize jitted frames post perf inject --jit.
To Reproduce
OPENBLAS_NUM_THREADS=1 ENABLE_JITPROFILING=1 perf record --call-graph dwarf -k 1 julia -g2 -e "fib(x) = x <= 1 ? 1 : (fib(x-1) + fib(x-2)); for _ in 1:1000; @show fib(32); end "
perf inject --verbose --jit --input perf.data --output perf.jit.data
Use perf report --input perf.jit.data to validate that most of the time is spent in a function called julia_fib_*
Expected behavior A clear and concise description of what you expected to happen.
Opening perf.jit.data should symbolize jitted frames correctly.
As an aside, I would appreciate it if Hotspot had an option to use perf inject from the GUI.
Screenshots
Version Info (please complete the following information):
- Linux Kernel version: 6.16.1-arch1-1
- perf version: 6.16-1
- hotspot version (appimage? selfcompiled?): 1.5.80 / from AUR (hotspot-git)
- if self-compiled hotspot, what version of elfutils: 0.193-5
Additional context Add any other context about the problem here.
please provide an MWE that allows us to reproduce this issue easily
I assume that the MWE I provided in the issue, is not minimal enough?
OPENBLAS_NUM_THREADS=1 ENABLE_JITPROFILING=1 perf record --call-graph dwarf -k 1 julia -g2 -e "fib(x) = x <= 1 ? 1 : (fib(x-1) + fib(x-2)); for _ in 1:1000; @show fib(32); end "
perf inject --verbose --jit --input perf.data --output perf.jit.data
Would the perf.jit.data file suffice? Inspection with perf report shows that the inject was successful.