Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | [sanitizer] do not acquire a global mutex in deadlock detector when dealing ↵ | Kostya Serebryany | 2014-02-27 | 1 | -2/+0 | |
| | | | | | | with Unlock (it is essentially a thread-local operation) llvm-svn: 202401 | |||||
* | [sanitizer] minimal support for recursive locks indeadlock detector | Kostya Serebryany | 2014-02-25 | 1 | -6/+6 | |
| | | | | llvm-svn: 202153 | |||||
* | [sanitizer] support pthread_rwlock_rd* in deadlock detector | Kostya Serebryany | 2014-02-25 | 1 | -32/+36 | |
| | | | | llvm-svn: 202132 | |||||
* | [sanitizer] partially support pthread_rwlock_* (no rd* form yet) | Kostya Serebryany | 2014-02-25 | 1 | -7/+12 | |
| | | | | llvm-svn: 202128 | |||||
* | [sanitizer] add support for try_lock in deadlock detector | Kostya Serebryany | 2014-02-25 | 1 | -3/+6 | |
| | | | | llvm-svn: 202120 | |||||
* | [sanitizer] fix epoch handling in deadlock detector (before the fix, we ↵ | Kostya Serebryany | 2014-02-25 | 1 | -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 Serebryany | 2014-02-21 | 1 | -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 Serebryany | 2014-02-19 | 1 | -7/+9 | |
| | | | | | | deadlock report. llvm-svn: 201675 | |||||
* | [sanitizer] when reporting a deadlock also report the lock cycle | Kostya Serebryany | 2014-02-18 | 1 | -10/+24 | |
| | | | | llvm-svn: 201576 | |||||
* | [sanitizer] make sure the deadlock detector survives the change of epochs; ↵ | Kostya Serebryany | 2014-02-18 | 1 | -6/+5 | |
| | | | | | | add a test and a comment llvm-svn: 201572 | |||||
* | [tsan] in deadlock detector do not register locks on their creation and ↵ | Kostya Serebryany | 2014-02-18 | 1 | -7/+4 | |
| | | | | | | unregister them on destruction; added a relevant test llvm-svn: 201568 | |||||
* | [sanitizer] simplify DeadlockDetectorTLS | Kostya Serebryany | 2014-02-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 201505 | |||||
* | [tsan] rudimentary support for deadlock detector in tsan (nothing really ↵ | Kostya Serebryany | 2014-02-14 | 1 | -0/+33 | |
| | | | | | | works yet except for a single tiny test). Also rename tsan's DeadlockDetector to InternalDeadlockDetector llvm-svn: 201407 | |||||
* | tsan: remove in_rtl counter | Dmitry Vyukov | 2013-12-24 | 1 | -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 mutexes | Dmitry Vyukov | 2013-11-15 | 1 | -0/+10 | |
| | | | | llvm-svn: 194823 | |||||
* | tsan: minor refactoring | Dmitry Vyukov | 2013-10-10 | 1 | -6/+1 | |
| | | | | | | Replace duplicate code snippet with function. llvm-svn: 192357 | |||||
* | tsan: add annotations to ignore synchronization operations | Dmitry Vyukov | 2013-10-10 | 1 | -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 mutexes | Dmitry Vyukov | 2013-09-21 | 1 | -7/+10 | |
| | | | | llvm-svn: 191151 | |||||
* | tsan: introduce recursive mutex lock/unlock java interface | Dmitry Vyukov | 2013-05-17 | 1 | -6/+10 | |
| | | | | | | this is required to handle Object.Wait() llvm-svn: 182088 | |||||
* | [TSan] Switch TSan runtime to use ThreadRegistry class from sanitizer_common | Alexey Samsonov | 2013-03-15 | 1 | -23/+25 | |
| | | | | llvm-svn: 177154 | |||||
* | tsan: even if races between atomic and plain memory accesses are turned off ↵ | Dmitry Vyukov | 2013-02-01 | 1 | -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 accesses | Dmitry Vyukov | 2013-02-01 | 1 | -7/+7 | |
| | | | | llvm-svn: 174163 | |||||
* | tsan: describe stack and TLS addresses | Dmitry Vyukov | 2013-01-14 | 1 | -0/+1 | |
| | | | | llvm-svn: 172393 | |||||
* | tsan: add mutexsets to reports | Dmitry Vyukov | 2012-12-06 | 1 | -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 address | Dmitry Vyukov | 2012-11-28 | 1 | -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 finalizers | Dmitry Vyukov | 2012-11-07 | 1 | -0/+14 | |
| | | | | llvm-svn: 167530 | |||||
* | [TSan] finally remove TsanPrintf in favor of Printf from sanitizer_common | Alexey Samsonov | 2012-11-02 | 1 | -6/+6 | |
| | | | | llvm-svn: 167294 | |||||
* | tsan: cache pc's that cause suppressions (this way we do not need to ↵ | Dmitry Vyukov | 2012-10-05 | 1 | -1/+1 | |
| | | | | | | symbolize the reports) llvm-svn: 165317 | |||||
* | tsan: ignore destruction of global mutexes (causes a lot of non-interesting ↵ | Dmitry Vyukov | 2012-09-07 | 1 | -0/+6 | |
| | | | | | | reports) llvm-svn: 163400 | |||||
* | tsan: better diagnostics for mutex misuse | Dmitry Vyukov | 2012-09-01 | 1 | -2/+10 | |
| | | | | llvm-svn: 163060 | |||||
* | tsan: fix crash when users pass insane mutex addresses in dynamic annotations | Dmitry Vyukov | 2012-08-31 | 1 | -7/+14 | |
| | | | | llvm-svn: 163016 | |||||
* | tsan: add "as if synchronized via sleep" feature | Dmitry Vyukov | 2012-08-31 | 1 | -0/+17 | |
| | | | | llvm-svn: 163006 | |||||
* | tsan: slightly optimize mutex unlock | Dmitry Vyukov | 2012-08-31 | 1 | -2/+2 | |
| | | | | llvm-svn: 162995 | |||||
* | tsan: proper handling of linker initialized mutexes | Dmitry Vyukov | 2012-08-18 | 1 | -17/+15 | |
| | | | | llvm-svn: 162169 | |||||
* | tsan: add flag to disable reporting of destruction of locked mutexes (some ↵ | Dmitry Vyukov | 2012-08-16 | 1 | -1/+4 | |
| | | | | | | programs use that on a regular basis) llvm-svn: 162024 | |||||
* | tsan: better diagnostics for destroy of a locked mutex + a test | Dmitry Vyukov | 2012-08-16 | 1 | -0/+8 | |
| | | | | llvm-svn: 162022 | |||||
* | tsan: support for linker initializer mutexes with static storage duration | Dmitry Vyukov | 2012-08-16 | 1 | -8/+12 | |
| | | | | llvm-svn: 162021 | |||||
* | tsan: implement RWLOCK annotations | Dmitry Vyukov | 2012-08-16 | 1 | -1/+1 | |
| | | | | llvm-svn: 162019 | |||||
* | tsan: add ReleaseStore() function that merely copies vector clock rather ↵ | Dmitry Vyukov | 2012-07-28 | 1 | -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 Samsonov | 2012-06-06 | 1 | -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 Samsonov | 2012-06-06 | 1 | -6/+7 | |
| | | | | | | implementation. llvm-svn: 158058 | |||||
* | Remove file-type tags in .cc files in tsan/ and sanitizer_common/ | Alexey Samsonov | 2012-06-04 | 1 | -1/+1 | |
| | | | | llvm-svn: 157928 | |||||
* | [tsan] First commit of ThreadSanitizer (TSan) run-time library. | Kostya Serebryany | 2012-05-10 | 1 | -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 |