Re: [PATCH 0/4] perf: add support for profiling jitted code

Stephane Eranian
2015-02-12T17:27:05Z

Jiri,

On Thu, Feb 12, 2015 at 8:42 AM, Jiri Olsa <jolsa@redhat.com> wrote:
> On Wed, Feb 11, 2015 at 12:42:41AM +0100, Stephane Eranian wrote:
>
> SNIP
>
>> To use the new feature:
>> - install the posix clock driver
>> - make sure you chmod 644 /dev/trace_clock
>> - compile perf
>> - cd tools/perf/jvmti; make; install wherever is appropriate
>>
>> Example using openJDK:
>> $ perf record java -agentpath:libjvmti.so my_class
>> java: jvmti: jitdump in $HOME/.debug/jit/java-jit-20150207.XXL9649H/jit-6320.dump
>> $ perf inject -i perf.data -j $HOME/.debug/jit/java-jit-20150207.XXL9649H/jit-6320.dump -o perf.data.jitted
>> $ perf report -i perf.data.jitted
>
> So report should display Java symbols now right? Is there something
> wrong with my test below?
>
That is because the timestamps are incorrect. Sorry about that.
Sonny's module as is is not going to generate the correct timestamps.
I will V2 today. It uses another module from David and it works because
it is using the same time source as perf_events.

> thanks,
> jirka
>
>
> [jolsa@ibm-x3650m4-01 perf]$ ./perf record java -agentpath:./jvmti/libjvmti.so Puppy
> java: jvmti: jitdump in /home/jolsa/.debug/jit/java-jit-20150212.XXru95af/jit-3777.dump
> Passed Name is :tommy
> Puppy's age is :2
> Variable Value :2
> ^C[ perf record: Woken up 3 times to write data ]
> [ perf record: Captured and wrote 0.666 MB perf.data (17258 samples) ]
>
>
> [jolsa@ibm-x3650m4-01 perf]$ ./perf inject -v -i perf.data -j /home/jolsa/.debug/jit/java-jit-20150212.XXru95af/jit-3777.dump -o perf.data.jitted
> build id event received for /lib/modules/3.19.0-rc7jit+/build/vmlinux: 4bb9dab963421f041b3eb3ec588fc07a58de4fa8
> build id event received for /usr/bin/bash: c9f090657c35c10d6edeca09f62de9d22060a706
> build id event received for /usr/lib64/ld-2.18.so: dddaf5704dbe9ace5c31f12ab90d8bfeb8fc5eb3
> build id event received for [vdso]: b9e5cb1dcb2ab0d9d969fdc0816c4ad9af37e26b
> build id event received for /usr/lib64/libc-2.18.so: f1b808c85f949e82cf864c1ef5a13c8acc703e3b
> build id event received for /usr/lib64/libpthread-2.18.so: 5b1e8bb0e7ae081585497d797e06614815b768ef
> build id event received for /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31.x86_64/jre/lib/amd64/server/libjvm.so: 7b87f33ae1b3150058839496dbe5b5521f8977b3
> build id event received for /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31.x86_64/jre/lib/amd64/libjava.so: 32594e2184996cd7ff8257c8ef70656d91d2b03c
> build id event received for /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.31.x86_64/jre/lib/amd64/libzip.so: 5cbb2075b9b316fc39dd0d5f9b0dcc8825256a4b
> version=1
> size=32(0)
> ts=0x26feca
> pid=3777
> elf_mach=62
> failed to write feature 2
>
>
> [jolsa@ibm-x3650m4-01 perf]$ ./perf report -i perf.data.jitted --stdio | head -13
> Failed to open /tmp/perf-3777.map, continuing without symbols
> # To display the perf.data header info, please use --header/--header-only options.
> #
> # Samples: 17K of event 'cycles'
> # Event count (approx.): 9728779054
> #
> # Overhead Command Shared Object Symbol
> # ........ ......... .................. .....................................................
> #
> 50.90% java-abrt perf-3777.map [.] 0x00007f93a501e550
> 15.00% java-abrt perf-3777.map [.] 0x00007f93a501e586
> 14.16% java-abrt perf-3777.map [.] 0x00007f93a501e579
> 12.63% java-abrt perf-3777.map [.] 0x00007f93a501e67b
> 3.04% java-abrt perf-3777.map [.] 0x00007f93a501e685