[PATCH] D129089: [BOLT] Fix concurrent hash table modification in the instrumentation runtime

Vladislav Khmelevsky via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 13 07:58:54 PST 2022


yota9 added a comment.
Herald added a subscriber: treapster.

For some reason after this patch I observe random deadlocks when running multiple tests. At the beginning of __bolt_instr_data_dump() I observe that one of the random GlobalIndCallCounters  might become locked and when it comes to the writeIndirectCallProfile->forEachElement it becomes deadlocked. Currently I'm unable to say what is the reason of such behaviour, if patch becomes reverted everything works fine. Also it looks like since visitIndCallCounter is called by forEachElement with mutex lock the CallFlowTable->get() would never be able to lock the mutex (with TryLock) or would always stuck in a deadlock if __bolt_instr_conservative option is used.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129089/new/

https://reviews.llvm.org/D129089



More information about the llvm-commits mailing list