facebookarchive / BOLT

Binary Optimization and Layout Tool - A linux command-line utility used for optimizing performance of binaries
2.52k stars 178 forks source link

Failed to BOLT #314

Closed PeterYang12 closed 1 year ago

PeterYang12 commented 1 year ago

My bolt commands are as follows: sudo perf2bolt -p perf.data -o /workspace/perf-mariadb.fdata /usr/sbin/mysqld I got the following errors:

perf2bolt: /home/pkb/llvm-project/bolt/lib/Core/BinaryBasicBlock.cpp:367: void llvm::bolt::BinaryBasicBlock::updateJumpTableSuccessors(): Assertion `Label == getFunction()->getFunctionEndLabel() && "JT label should match a block or end of function."' failed.
 #0 0x000055555622adcf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/local/bin/llvm-bolt+0xcd6dcf)
 #1 0x00005555562287e4 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007ffff7fb9420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007ffff7a8600b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
 #4 0x00007ffff7a65859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
 #5 0x00007ffff7a65729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
 #6 0x00007ffff7a76fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
 #7 0x00005555572cebaf llvm::bolt::BinaryBasicBlock::updateJumpTableSuccessors() (/usr/local/bin/llvm-bolt+0x1d7abaf)
 #8 0x0000555557320987 llvm::bolt::BinaryFunction::postProcessIndirectBranches(unsigned short) (/usr/local/bin/llvm-bolt+0x1dcc987)
 #9 0x000055555732c173 llvm::bolt::BinaryFunction::buildCFG(unsigned short) (/usr/local/bin/llvm-bolt+0x1dd8173)
#10 0x000055555627da01 std::_Function_handler<void (llvm::bolt::BinaryFunction&, unsigned short), llvm::bolt::RewriteInstance::buildFunctionsCFG()::'lambda'(llvm::bolt::BinaryFunction&, unsigned short)>::_M_invoke(std::_Any_data cons
t&, llvm::bolt::BinaryFunction&, unsigned short&&) RewriteInstance.cpp:0:0
#11 0x0000555557365605 std::_Function_handler<void (), std::_Bind<llvm::bolt::ParallelUtilities::runOnEachFunctionWithUniqueAllocId(llvm::bolt::BinaryContext&, llvm::bolt::ParallelUtilities::SchedulingPolicy, std::function<void (llvm::bolt::BinaryFunction&, unsigned short)>, std::function<bool (llvm::bolt::BinaryFunction const&)>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, unsigned int)::'lambda'(std::_Rb_tree_iterator<std::pair<unsigned long const, llvm::bolt::BinaryFunction>>, std::_Rb_tree_iterator<std::pair<unsigned long const, llvm::bolt::BinaryFunction>>, unsigned short) (std::_Rb_tree_iterator<std::pair<unsigned long const, llvm::bolt::BinaryFunction>>, std::_Rb_tree_iterator<std::pair<unsigned long const, llvm::bolt::BinaryFunction>>, unsigned int)>>::_M_invoke(std::_Any_data const&) ParallelUtilities.cpp:0:0
#12 0x00005555562e43e2 std::_Function_handler<void (), llvm::ThreadPool::createTaskAndFuture(std::function<void ()>)::'lambda'()>::_M_invoke(std::_Any_data const&) (/usr/local/bin/llvm-bolt+0xd903e2)
#13 0x000055555769df31 llvm::ThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) (/usr/local/bin/llvm-bolt+0x2149f31)
#14 0x000055555769eaca void* llvm::thread::ThreadProxy<std::tuple<llvm::ThreadPool::grow(int)::'lambda'()>>(void*) ThreadPool.cpp:0:0
#15 0x00007ffff7fad609 start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x8609)
#16 0x00007ffff7b62133 __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f133)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.

My SUT is Ubuntu22.04 and the kernel version is 5.15.0-56-generic.

PeterYang12 commented 1 year ago

Can any one help me with this issue?

aaupov commented 1 year ago

Closing as duplicate of https://github.com/llvm/llvm-project/issues/60795