You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 1, 2023. It is now read-only.
I tried to bolt a PGO-based php-fpm binary. When I run perf2bolt, the following assertion was shown up.
perf2bolt -p perf.data -o /workspace/perf.fdata /opt/pkb/git/hhvm-perf/php-fpm
.......
BOLT-INFO: shared object or position-independent executable detected
PERF2BOLT: Starting data aggregation job for perf.data
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: c62053979489ccb002efe411c3af059addcb5d7d
BOLT-INFO: first alloc address is 0x0
BOLT-INFO: creating new program header table at address 0x1400000, offset 0x1400000
BOLT-INFO: enabling relocation mode
BOLT-INFO: enabling strict relocation mode for aggregation purposes
BOLT-WARNING: split function detected on input : OnUpdate_date_timezone.cold.13/1. The support is limited in relocation mode.
BOLT-INFO: pre-processing profile using perf data aggregator
BOLT-INFO: binary build-id is: 802999cf701009d2cc369782da77829e749a8ff3
PERF2BOLT: spawning perf job to read buildid list
PERF2BOLT: matched build-id and file name
PERF2BOLT: waiting for perf mmap events collection to finish...
PERF2BOLT: parsing perf-script mmap events output
PERF2BOLT: waiting for perf task events collection to finish...
PERF2BOLT: parsing perf-script task events output
PERF2BOLT: input binary is associated with 73 PID(s)
PERF2BOLT: waiting for perf events collection to finish...
PERF2BOLT: parse branch events...
PERF2BOLT: read 15 samples and 359 LBR entries
PERF2BOLT: 7860 samples (99.8%) were ignored
PERF2BOLT-WARNING: less than 50% of all recorded samples were attributed to the input binary
PERF2BOLT: traces mismatching disassembled function contents: 0 (0.0%)
PERF2BOLT: out of range traces involving unknown regions: 84 (24.3%)
BOLT-WARNING: interprocedural reference between unrelated fragments: zend_fetch_this_var/1(*2) and ZEND_ASSIGN_SPEC_VAR_TMP_RETVAL_UNUSED_HANDLER.cold.91/1(*2)
BOLT-WARNING: interprocedural reference between unrelated fragments: zend_ast_with_attributes/1 and zend_object_std_init.cold.0/1(*2)
BOLT-WARNING: interprocedural reference between unrelated fragments: zend_compile_assign/1 and zend_ensure_writable_variable.cold.34/1(*2)
perf2bolt: /home/bolt/llvm-project/bolt/lib/Core/BinaryContext.cpp:683: void llvm::bolt::BinaryContext::populateJumpTables(): Assertion `0 && "unclaimed PC-relative relocations left in data\n"' failed.
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
perf2bolt(+0x9207e4)[0x555555e747e4]
perf2bolt(+0x91e35e)[0x555555e7235e]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x143c0)[0x7ffff7fb53c0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7ffff7aa003b]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7ffff7a7f859]
/lib/x86_64-linux-gnu/libc.so.6(+0x22729)[0x7ffff7a7f729]
/lib/x86_64-linux-gnu/libc.so.6(+0x34006)[0x7ffff7a91006]
perf2bolt(+0x1704d61)[0x555556c58d61]
perf2bolt(+0x6d96c9)[0x555555c2d6c9]
perf2bolt(+0x743bae)[0x555555c97bae]
perf2bolt(+0x1ed5fa)[0x5555557415fa]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7ffff7a810b3]
perf2bolt(+0x24c37e)[0x5555557a037e]
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
I tried to bolt a PGO-based php-fpm binary. When I run perf2bolt, the following assertion was shown up.
The following is the version info of perf2bolt