summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc
Commit message (Collapse)AuthorAgeFilesLines
...
* [sanitizer] do not acquire a global mutex in deadlock detector when dealing ↵Kostya Serebryany2014-02-271-2/+0
| | | | | | with Unlock (it is essentially a thread-local operation) llvm-svn: 202401
* [sanitizer] minimal support for recursive locks indeadlock detectorKostya Serebryany2014-02-251-6/+6
| | | | llvm-svn: 202153
* [sanitizer] support pthread_rwlock_rd* in deadlock detectorKostya Serebryany2014-02-251-32/+36
| | | | llvm-svn: 202132
* [sanitizer] partially support pthread_rwlock_* (no rd* form yet)Kostya Serebryany2014-02-251-7/+12
| | | | llvm-svn: 202128
* [sanitizer] add support for try_lock in deadlock detectorKostya Serebryany2014-02-251-3/+6
| | | | llvm-svn: 202120
* [sanitizer] fix epoch handling in deadlock detector (before the fix, we ↵Kostya Serebryany2014-02-251-4/+5
| | | | | | could have had edges from locks in the previous epoch to locks in the current epoch) llvm-svn: 202118
* [tsan] add coarse-grained lock around the DeadlockDetector. We can do better ↵Kostya Serebryany2014-02-211-15/+19
| | | | | | than that, but that's a start. llvm-svn: 201861
* [tsan] when printing a mutex, also print its address. Properly print the ↵Kostya Serebryany2014-02-191-7/+9
| | | | | | deadlock report. llvm-svn: 201675
* [sanitizer] when reporting a deadlock also report the lock cycleKostya Serebryany2014-02-181-10/+24
| | | | llvm-svn: 201576
* [sanitizer] make sure the deadlock detector survives the change of epochs; ↵Kostya Serebryany2014-02-181-6/+5
| | | | | | add a test and a comment llvm-svn: 201572
* [tsan] in deadlock detector do not register locks on their creation and ↵Kostya Serebryany2014-02-181-7/+4
| | | | | | unregister them on destruction; added a relevant test llvm-svn: 201568
* [sanitizer] simplify DeadlockDetectorTLSKostya Serebryany2014-02-171-1/+1
| | | | llvm-svn: 201505
* [tsan] rudimentary support for deadlock detector in tsan (nothing really ↵Kostya Serebryany2014-02-141-0/+33
| | | | | | works yet except for a single tiny test). Also rename tsan's DeadlockDetector to InternalDeadlockDetector llvm-svn: 201407
* tsan: remove in_rtl counterDmitry Vyukov2013-12-241-11/+0
| | | | | | | | This is intended to address the following problem. Episodically we see CHECK-failures when recursive interceptors call back into user code. Effectively we are not "in_rtl" at this point, but it's very complicated and fragile to properly maintain in_rtl property. Instead get rid of it. It was used mostly for sanity CHECKs, which basically never uncover real problems. Instead introduce ignore_interceptors flag, which is used in very few narrow places to disable recursive interceptors (e.g. during runtime initialization). llvm-svn: 197979
* tsan: add support for robust mutexesDmitry Vyukov2013-11-151-0/+10
| | | | llvm-svn: 194823
* tsan: minor refactoringDmitry Vyukov2013-10-101-6/+1
| | | | | | Replace duplicate code snippet with function. llvm-svn: 192357
* tsan: add annotations to ignore synchronization operationsDmitry Vyukov2013-10-101-37/+69
| | | | | | | | The annotations are AnnotateIgnoreSyncBegin/End, may be useful to ignore some infrastructure synchronization that introduces lots of false negatives. llvm-svn: 192355
* tsan: improve diagnostics for incorrect usages of mutexesDmitry Vyukov2013-09-211-7/+10
| | | | llvm-svn: 191151
* tsan: introduce recursive mutex lock/unlock java interfaceDmitry Vyukov2013-05-171-6/+10
| | | | | | this is required to handle Object.Wait() llvm-svn: 182088
* [TSan] Switch TSan runtime to use ThreadRegistry class from sanitizer_commonAlexey Samsonov2013-03-151-23/+25
| | | | llvm-svn: 177154
* tsan: even if races between atomic and plain memory accesses are turned off ↵Dmitry Vyukov2013-02-011-2/+10
| | | | | | | | (report_atomic_races=0), still report races between atomic accesses and free(). llvm-svn: 174175
* tsan: detect races between plain and atomic memory accessesDmitry Vyukov2013-02-011-7/+7
| | | | llvm-svn: 174163
* tsan: describe stack and TLS addressesDmitry Vyukov2013-01-141-0/+1
| | | | llvm-svn: 172393
* tsan: add mutexsets to reportsDmitry Vyukov2012-12-061-17/+25
| | | | | | With this change reports say what mutexes the threads hold around the racy memory accesses. llvm-svn: 169493
* tsan: move traces from tls into dedicated storage at fixed addressDmitry Vyukov2012-11-281-6/+6
| | | | | | | helps to reduce tls size (it's weird to have multi-MB tls) will help with dynamically adjustable trace size llvm-svn: 168783
* tsan: more precise handling of finalizersDmitry Vyukov2012-11-071-0/+14
| | | | llvm-svn: 167530
* [TSan] finally remove TsanPrintf in favor of Printf from sanitizer_commonAlexey Samsonov2012-11-021-6/+6
| | | | llvm-svn: 167294
* tsan: cache pc's that cause suppressions (this way we do not need to ↵Dmitry Vyukov2012-10-051-1/+1
| | | | | | symbolize the reports) llvm-svn: 165317
* tsan: ignore destruction of global mutexes (causes a lot of non-interesting ↵Dmitry Vyukov2012-09-071-0/+6
| | | | | | reports) llvm-svn: 163400
* tsan: better diagnostics for mutex misuseDmitry Vyukov2012-09-011-2/+10
| | | | llvm-svn: 163060
* tsan: fix crash when users pass insane mutex addresses in dynamic annotationsDmitry Vyukov2012-08-311-7/+14
| | | | llvm-svn: 163016
* tsan: add "as if synchronized via sleep" featureDmitry Vyukov2012-08-311-0/+17
| | | | llvm-svn: 163006
* tsan: slightly optimize mutex unlock Dmitry Vyukov2012-08-311-2/+2
| | | | llvm-svn: 162995
* tsan: proper handling of linker initialized mutexesDmitry Vyukov2012-08-181-17/+15
| | | | llvm-svn: 162169
* tsan: add flag to disable reporting of destruction of locked mutexes (some ↵Dmitry Vyukov2012-08-161-1/+4
| | | | | | programs use that on a regular basis) llvm-svn: 162024
* tsan: better diagnostics for destroy of a locked mutex + a testDmitry Vyukov2012-08-161-0/+8
| | | | llvm-svn: 162022
* tsan: support for linker initializer mutexes with static storage durationDmitry Vyukov2012-08-161-8/+12
| | | | llvm-svn: 162021
* tsan: implement RWLOCK annotationsDmitry Vyukov2012-08-161-1/+1
| | | | llvm-svn: 162019
* tsan: add ReleaseStore() function that merely copies vector clock rather ↵Dmitry Vyukov2012-07-281-0/+10
| | | | | | | | than combines two clocks fix clock setup for finalizer goroutine (Go runtime) llvm-svn: 160918
* [Sanitizer]: Introduce a common internal printf function. For now, also use ↵Alexey Samsonov2012-06-061-9/+9
| | | | | | tool-specific wrappers TsanPrintf (its output is controlled by TSan flags) and AsanPrintf (which copies its results to the ASan-private buffer). Supported formats: %[z]{d,u,x}, %s, %p. Re-write all format strings in TSan according to this format (this should have no effect on 64-bit platforms). llvm-svn: 158065
* [TSan] run some renaming as a preparation for factoring out Printf ↵Alexey Samsonov2012-06-061-6/+7
| | | | | | implementation. llvm-svn: 158058
* Remove file-type tags in .cc files in tsan/ and sanitizer_common/Alexey Samsonov2012-06-041-1/+1
| | | | llvm-svn: 157928
* [tsan] First commit of ThreadSanitizer (TSan) run-time library.Kostya Serebryany2012-05-101-0/+209
Algorithm description: http://code.google.com/p/thread-sanitizer/wiki/ThreadSanitizerAlgorithm Status: The tool is known to work on large real-life applications, but still has quite a few rough edges. Nothing is guaranteed yet. The tool works on x86_64 Linux. Support for 64-bit MacOS 10.7+ is planned for late 2012. Support for 32-bit OSes is doable, but problematic and not yet planed. Further commits coming: - tests - makefiles - documentation - clang driver patch The code was previously developed at http://code.google.com/p/data-race-test/source/browse/trunk/v2/ by Dmitry Vyukov and Kostya Serebryany with contributions from Timur Iskhodzhanov, Alexander Potapenko, Alexey Samsonov and Evgeniy Stepanov. llvm-svn: 156542
OpenPOWER on IntegriCloud