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

Jiri Olsa
2015-02-12T13:44:24Z

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?

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