[PATCH] D41190: [tsan] Separate the constants in libignore and bump the maximum for instrumented libraries
Kuba (Brecka) Mracek via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 13 10:42:29 PST 2017
kubamracek created this revision.
kubamracek added a reviewer: dvyukov.
kubamracek added a project: Sanitizers.
Herald added a subscriber: Sanitizers.
We're having some use cases where we have more than 128 (the current maximum) instrumented dynamic libraries loaded into a single process. Let's bump the limit to 1024, and separate the constants.
Repository:
rCRT Compiler Runtime
https://reviews.llvm.org/D41190
Files:
lib/sanitizer_common/sanitizer_libignore.cc
lib/sanitizer_common/sanitizer_libignore.h
Index: lib/sanitizer_common/sanitizer_libignore.h
===================================================================
--- lib/sanitizer_common/sanitizer_libignore.h
+++ lib/sanitizer_common/sanitizer_libignore.h
@@ -66,14 +66,16 @@
return (pc >= range.begin && pc < range.end);
}
- static const uptr kMaxLibs = 128;
+ static const uptr kMaxIgnoredRanges = 128;
+ static const uptr kMaxInstrumentedRanges = 1024;
+ static const uptr kMaxLibs = 1024;
// Hot part:
atomic_uintptr_t ignored_ranges_count_;
- LibCodeRange ignored_code_ranges_[kMaxLibs];
+ LibCodeRange ignored_code_ranges_[kMaxIgnoredRanges];
atomic_uintptr_t instrumented_ranges_count_;
- LibCodeRange instrumented_code_ranges_[kMaxLibs];
+ LibCodeRange instrumented_code_ranges_[kMaxInstrumentedRanges];
// Cold part:
BlockingMutex mutex_;
Index: lib/sanitizer_common/sanitizer_libignore.cc
===================================================================
--- lib/sanitizer_common/sanitizer_libignore.cc
+++ lib/sanitizer_common/sanitizer_libignore.cc
@@ -80,7 +80,7 @@
lib->name = internal_strdup(mod.full_name());
const uptr idx =
atomic_load(&ignored_ranges_count_, memory_order_relaxed);
- CHECK_LT(idx, kMaxLibs);
+ CHECK_LT(idx, kMaxIgnoredRanges);
ignored_code_ranges_[idx].begin = range.beg;
ignored_code_ranges_[idx].end = range.end;
atomic_store(&ignored_ranges_count_, idx + 1, memory_order_release);
@@ -109,7 +109,7 @@
range.beg, range.end, mod.full_name());
const uptr idx =
atomic_load(&instrumented_ranges_count_, memory_order_relaxed);
- CHECK_LT(idx, kMaxLibs);
+ CHECK_LT(idx, kMaxInstrumentedRanges);
instrumented_code_ranges_[idx].begin = range.beg;
instrumented_code_ranges_[idx].end = range.end;
atomic_store(&instrumented_ranges_count_, idx + 1,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41190.126788.patch
Type: text/x-patch
Size: 1928 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171213/4aaeab46/attachment.bin>
More information about the llvm-commits
mailing list