[llvm-dev] PerfJITEventListener needs perf-<pid>.map?

Eugene Zhulenev via llvm-dev llvm-dev at lists.llvm.org
Fri Apr 17 22:58:30 PDT 2020


I'm trying to use PerfJITEventListener with llvm::orc::LLJITBuilder:

1. perf record -o /tmp/perf.data -- <my_binary_with_event_listener>
2. perf inject -j -v -i /tmp/perf.data -o /tmp/perf.data.jit

*jit marker found: ~.debug/jit/llvm-IR-jit-20200417-3c2242/jit-149849.dump*
*injecting: ~/.debug/jit/llvm-IR-jit-20200417-3c2242/jit-149849.dump*
*write ELF image
~/.debug/jit/llvm-IR-jit-20200417-3c2242/jitted-149849-1.so*
*write ELF image
~/.debug/jit/llvm-IR-jit-20200417-3c2242/jitted-149849-2.so*
*injected: ~/.debug/jit/llvm-IR-jit-20200417-3c2242/jit-149849.dump (0)*


Generated ELF files have correct .text sections.

However perf report can't find these generated so files:

+   69.50%    23.82%  my_binary  [JIT] tid 149849    [.] 0x00007f9c34d5106a
+   51.78%    45.69%  my_binary  [JIT] tid 149849    [.] 0x00007f9c34d51065
+   27.71%     6.09%  my_binary  [JIT] tid 149849     [.] 0x00007f9c34d51060

It seems that perf report is looking for a shared object
in /tmp/perf-149849.map, but that file doesn't exist.

Looking at examples in the original LLVM change (
https://reviews.llvm.org/D44892?), I don't see any mentions of perf.map
file.

Do I miss something? Are there any examples of how to use perf listener?

Thanks,
Eugene
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200417/bc8499e9/attachment.html>


More information about the llvm-dev mailing list