How to solve the error of not having the same binary to convert profile to BOLT format?


I profiled from the java renaissance benchmark with the following instructions:

 perf record -e cycles:u -j any,u -o ../results/finagle-chirper/ --  ./../../../jdk/build/linux-x86_64-server-release/images/jdk/bin/java -jar '../renaissance-gpl-0.14.1.jar' finagle-chirper

And it was done without any problems.

Now when I want to convert it to BOLT format, it gives the following error and they say that my binary is not the same as the binary that I profiled.

./../../../build/bin/perf2bolt -p ../results/finagle-chirper/ -o ../results/finagle-chirper/perf.fdata  ./../../../jdk/build/linux-x86_64-server-release/jdk/bin/java
BOLT-INFO: shared object or position-independent executable detected
PERF2BOLT: Starting data aggregation job for ../results/finagle-chirper/
PERF2BOLT: spawning perf job to read branch events
PERF2BOLT: spawning perf job to read mem events
PERF2BOLT: spawning perf job to read process events
PERF2BOLT: spawning perf job to read task events
BOLT-INFO: Target architecture: x86_64
BOLT-INFO: BOLT version: b95cca03cd7b751e977fee808b7e84ffffec116d
BOLT-INFO: first alloc address is 0x0
BOLT-INFO: creating new program header table at address 0x400000, offset 0x400000
BOLT-INFO: enabling relocation mode
BOLT-INFO: enabling strict relocation mode for aggregation purposes
BOLT-INFO: pre-processing profile using perf data aggregator
BOLT-INFO: binary build-id is:     b24f4c8e508d66a66f03d9a0c0505db006ef3515
PERF2BOLT: spawning perf job to read buildid list
PERF2BOLT-ERROR: failed to match build-id from perf output. This indicates the input binary supplied for data aggregation is not the same recorded by perf when collecting profiling data, or there were no samples recorded for the binary. Use -ignore-build-id option to override.

What should I do now?

Please help me.

What’s the output of perf buildid-list -i Do you see java binary?

thanks for replay.
output is:

zahra@zahra:~/Documents/Renaissance/renaissance-0.14.1$ perf buildid-list -i ../results/finagle-chirper/
2889fc4843079c6cecfa0f92c6e16daf5dedda7f [kernel.kallsyms]
9ea8014cf02021a29e57aa3e0512e9bb6e30541d /lib/x86_64-linux-gnu/
7122517abb429b8f5c1872b59a3201b5110ed945 [vdso]
6517f816c946c49ad246642f79493cd0ca2629db /lib/x86_64-linux-gnu/
1f06001733b9be9478b105faf0dac6bdf36c85de /lib/x86_64-linux-gnu/
4c0610fa7b0706d9abc26de5e7940d2e2578eec5 /lib/x86_64-linux-gnu/
f7307432a8b162377e77a182b6cc2e53d771ec4b /lib/x86_64-linux-gnu/

no, i don’t see java binary.
but, why?