[compiler-rt] [TSan] Increase the number of simultaneously locked mutexes that a thread can hold (PR #116409)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 18 02:32:43 PST 2024
https://github.com/gbMattN updated https://github.com/llvm/llvm-project/pull/116409
>From a2561d5878a02b6955f48a38434c2cc056dd6459 Mon Sep 17 00:00:00 2001
From: gbMattN <matthew.nagy at sony.com>
Date: Fri, 15 Nov 2024 15:41:24 +0000
Subject: [PATCH 1/2] [TSan] Increase the limit of simultaniously held mutexes
TSan can keep track of from 64 to 128
---
.../sanitizer_deadlock_detector.h | 2 +-
compiler-rt/test/tsan/many_held_mutex.cpp | 23 +++++++++++++++++++
2 files changed, 24 insertions(+), 1 deletion(-)
create mode 100644 compiler-rt/test/tsan/many_held_mutex.cpp
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h b/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h
index 0749f633b4bcf5..1664b92b213692 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h
@@ -120,7 +120,7 @@ class DeadlockDetectorTLS {
u32 lock;
u32 stk;
};
- LockWithContext all_locks_with_contexts_[64];
+ LockWithContext all_locks_with_contexts_[128];
uptr n_all_locks_;
};
diff --git a/compiler-rt/test/tsan/many_held_mutex.cpp b/compiler-rt/test/tsan/many_held_mutex.cpp
new file mode 100644
index 00000000000000..479aa20a7b9df3
--- /dev/null
+++ b/compiler-rt/test/tsan/many_held_mutex.cpp
@@ -0,0 +1,23 @@
+// RUN: %clangxx_tsan %s -fsanitize=thread -o %t && %run %t 2>&1 | Filecheck %s
+
+#include <mutex>
+#include <stdio.h>
+
+int main(){
+ const unsigned short NUM_OF_MTX = 128;
+ std::mutex mutexes[NUM_OF_MTX];
+
+ for(int i = 0; i < NUM_OF_MTX; i++){
+ mutexes[i].lock();
+ }
+ for(int i = 0; i < NUM_OF_MTX; i++){
+ mutexes[i].unlock();
+ }
+
+ printf("Success\n");
+
+ return 0;
+}
+
+// CHECK: Success
+// CHECK-NOT: ThreadSanitizer: CHECK failed
>From d93e959dd33224eb738d0f46394b698cf4c77374 Mon Sep 17 00:00:00 2001
From: gbMattN <matthew.nagy at sony.com>
Date: Mon, 18 Nov 2024 10:32:32 +0000
Subject: [PATCH 2/2] Fixed the test and its formatting
---
compiler-rt/test/tsan/many_held_mutex.cpp | 24 +++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/compiler-rt/test/tsan/many_held_mutex.cpp b/compiler-rt/test/tsan/many_held_mutex.cpp
index 479aa20a7b9df3..36a599904ffe31 100644
--- a/compiler-rt/test/tsan/many_held_mutex.cpp
+++ b/compiler-rt/test/tsan/many_held_mutex.cpp
@@ -1,22 +1,22 @@
-// RUN: %clangxx_tsan %s -fsanitize=thread -o %t && %run %t 2>&1 | Filecheck %s
+// RUN: %clangxx_tsan %s -fsanitize=thread -o %t && %run %t 2>&1 | FileCheck %s
#include <mutex>
#include <stdio.h>
-int main(){
- const unsigned short NUM_OF_MTX = 128;
- std::mutex mutexes[NUM_OF_MTX];
+int main() {
+ const unsigned short NUM_OF_MTX = 128;
+ std::mutex mutexes[NUM_OF_MTX];
- for(int i = 0; i < NUM_OF_MTX; i++){
- mutexes[i].lock();
- }
- for(int i = 0; i < NUM_OF_MTX; i++){
- mutexes[i].unlock();
- }
+ for (int i = 0; i < NUM_OF_MTX; i++) {
+ mutexes[i].lock();
+ }
+ for (int i = 0; i < NUM_OF_MTX; i++) {
+ mutexes[i].unlock();
+ }
- printf("Success\n");
+ printf("Success\n");
- return 0;
+ return 0;
}
// CHECK: Success
More information about the llvm-commits
mailing list