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

Owen Anderson via llvm-dev llvm-dev at lists.llvm.org
Wed Apr 29 11:42:28 PDT 2020


Hi Eugene,

Did you ever discover the root cause of this problem?  I seeing the same symptoms when using MCJIT.

--Owen

> On Apr 18, 2020, at 1:19 AM, Eugene Zhulenev via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> Figured out how to make it work, thanks to example in https://reviews.llvm.org/rG39253a50f0f33e491e2d021f94cd3a87ee773f2d <https://reviews.llvm.org/rG39253a50f0f33e491e2d021f94cd3a87ee773f2d>
> 
> auto objectLayer = std::make_unique<RTDyldObjectLinkingLayer>(
>         session, []() { return std::make_unique<SectionMemoryManager>(); });
> objectLayer->registerJITEventListener(*llvm::JITEventListener::createPerfJITEventListener());
> 
> Previously I was forwarding to JITEventListener::notifyObjectLoaded from objectLayer->setNotifyLoaded callback.
> 
> Eugene
> 
> On Fri, Apr 17, 2020 at 10:58 PM Eugene Zhulenev <ezhulenev at google.com <mailto:ezhulenev at google.com>> wrote:
> 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? <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
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200429/0a283dbd/attachment.html>


More information about the llvm-dev mailing list