[compiler-rt] 0b049ce - [tsan] Test `__tsan_test_only_on_fork` only on Mac (#96597)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 25 09:58:35 PDT 2024
Author: Vitaly Buka
Date: 2024-06-25T09:58:32-07:00
New Revision: 0b049ce64653a8cbdeedaa2bfe6cc79fc6af5d40
URL: https://github.com/llvm/llvm-project/commit/0b049ce64653a8cbdeedaa2bfe6cc79fc6af5d40
DIFF: https://github.com/llvm/llvm-project/commit/0b049ce64653a8cbdeedaa2bfe6cc79fc6af5d40.diff
LOG: [tsan] Test `__tsan_test_only_on_fork` only on Mac (#96597)
According to https://reviews.llvm.org/D114250
this was to handle Mac specific issue, however
the test is Linux only.
The test effectively prevents to lock main allocator
on fork, but we do that on Linux for other
sanitizers for years, and need to do the same
for TSAN to avoid deadlocks.
Added:
compiler-rt/test/tsan/Darwin/fork_deadlock.cpp
Modified:
compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
Removed:
compiler-rt/test/tsan/Linux/fork_deadlock.cpp
################################################################################
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
index fd9441dfcb53c..2d5992b703a6a 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
@@ -35,8 +35,10 @@ extern "C" void __tsan_resume() {
__tsan_resumed = 1;
}
+#if SANITIZER_APPLE
SANITIZER_WEAK_DEFAULT_IMPL
void __tsan_test_only_on_fork() {}
+#endif
namespace __tsan {
@@ -828,7 +830,9 @@ void ForkBefore(ThreadState* thr, uptr pc) SANITIZER_NO_THREAD_SAFETY_ANALYSIS {
// Disables memory write in OnUserAlloc/Free.
thr->ignore_reads_and_writes++;
+# if SANITIZER_APPLE
__tsan_test_only_on_fork();
+# endif
}
static void ForkAfter(ThreadState* thr) SANITIZER_NO_THREAD_SAFETY_ANALYSIS {
diff --git a/compiler-rt/test/tsan/Linux/fork_deadlock.cpp b/compiler-rt/test/tsan/Darwin/fork_deadlock.cpp
similarity index 100%
rename from compiler-rt/test/tsan/Linux/fork_deadlock.cpp
rename to compiler-rt/test/tsan/Darwin/fork_deadlock.cpp
More information about the llvm-commits
mailing list