Go to file
Dmitry Vyukov 3464dac0ca tsan: speed up race deduplication
Race deduplication code proved to be a performance bottleneck in the past if suppressions/annotations are used, or just some races left unaddressed. And we still get user complaints about this:
https://groups.google.com/forum/#!topic/thread-sanitizer/hB0WyiTI4e4
ReportRace already has several layers of caching for racy pcs/addresses to make deduplication faster. However, ReportRace still takes a global mutex (ThreadRegistry and ReportMutex) during deduplication and also calls mmap/munmap (which take process-wide semaphore in kernel), this makes deduplication non-scalable.

This patch moves race deduplication outside of global mutexes and also removes all mmap/munmap calls.
As the result, race_stress.cc with 100 threads and 10000 iterations become 30x faster:

before:
real	0m21.673s
user	0m5.932s
sys	0m34.885s

after:
real	0m0.720s
user	0m23.646s
sys	0m1.254s

http://reviews.llvm.org/D12554

llvm-svn: 246758
2015-09-03 11:20:46 +00:00
clang [OPENMP] Fix for http://llvm.org/PR24687: ICE on compilation of R package TPmsm. 2015-09-03 10:21:46 +00:00
clang-tools-extra Updating the code owners list. 2015-09-02 20:00:41 +00:00
compiler-rt tsan: speed up race deduplication 2015-09-03 11:20:46 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Update mailing list reference. 2015-08-24 22:43:24 +00:00
libcxx Remove unused code. NFC 2015-08-31 14:43:41 +00:00
libcxxabi Convert LIBCXXABI_BUILD_32_BITS to LLVM_BUILD_32_BITS. 2015-09-01 01:02:06 +00:00
libunwind unwind: cleanup -Wunused-parameter 2015-09-01 04:29:03 +00:00
lld Make getSymbols non-virtual. NFC. 2015-09-02 23:01:37 +00:00
lldb Fix deadlock while attaching to inferiors 2015-09-03 09:36:22 +00:00
llgo [llgo] drop debug/DIBuilder.Declare 2015-09-01 11:52:37 +00:00
llvm [Docs] Fix Sphinx warning 2015-09-03 09:33:54 +00:00
openmp Remove duplicate of num_threads assignment. 2015-09-02 20:28:50 +00:00
polly ScopInfo: use project_out instead of remove_dims 2015-09-01 18:17:41 +00:00