summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/tsan
Commit message (Collapse)AuthorAgeFilesLines
...
* tsan: disable debug output in normal modeDmitry Vyukov2014-05-051-6/+5
| | | | llvm-svn: 207954
* [sanitizer] Intercept a bunch of stdio calls.Evgeniy Stepanov2014-04-253-66/+17
| | | | | | Add move fopen/freopen interceptors from TSan to common. llvm-svn: 207224
* tsan: allow to suppress all reportsDmitry Vyukov2014-04-254-4/+12
| | | | | | Fixes issue https://code.google.com/p/thread-sanitizer/issues/detail?id=45 llvm-svn: 207218
* tsan: better reports for "unlock of an unlocked mutex"Dmitry Vyukov2014-04-251-3/+6
| | | | llvm-svn: 207211
* tsan: better reports for "read lock of a write locked mutex"Dmitry Vyukov2014-04-253-33/+30
| | | | llvm-svn: 207209
* tsan: improve "read unlock of a write locked mutex" reportDmitry Vyukov2014-04-253-4/+21
| | | | llvm-svn: 207208
* tsan: better report for bad mutex unlocksDmitry Vyukov2014-04-253-11/+19
| | | | | | | + fixes crashes due to races on symbolizer, see https://code.google.com/p/thread-sanitizer/issues/detail?id=55 llvm-svn: 207206
* tsan: better reports for "double lock of a mutex"Dmitry Vyukov2014-04-256-3/+27
| | | | | | | + fixes crashes due to races on symbolizer, see: https://code.google.com/p/thread-sanitizer/issues/detail?id=55 llvm-svn: 207204
* tsan: stop background thread when sandbox is enabledDmitry Vyukov2014-04-245-8/+38
| | | | | | Fixes https://code.google.com/p/thread-sanitizer/issues/detail?id=56 llvm-svn: 207114
* tsan: fix atexit handling after forkDmitry Vyukov2014-04-231-1/+3
| | | | | | fixes issue http://code.google.com/p/thread-sanitizer/issues/detail?id=57 llvm-svn: 206980
* tsan: more precise check for "app memory" in COMPAT modeDmitry Vyukov2014-04-231-0/+7
| | | | | | this fires when a user makes mmap with fixed address (see the test) llvm-svn: 206952
* tsan: reduce number of iterations in the testDmitry Vyukov2014-04-231-1/+1
| | | | | | otherwise it runs for 50 seconds in debug mode llvm-svn: 206950
* Move pthread_cond_* interceptors from sanitizer_common with all the ugly ↵Alexey Samsonov2014-04-164-1/+154
| | | | | | hacks to TSan llvm-svn: 206423
* tsan: serialize report printing in standalone deadlock detectorDmitry Vyukov2014-04-112-1/+2
| | | | | | otherwise reports get intermixed llvm-svn: 206043
* tsan: fix vector clocksDmitry Vyukov2014-04-1111-101/+141
| | | | | | | the new optimizations break when thread ids gets reused (clocks go backwards) add the necessary tests as well llvm-svn: 206035
* tsan: ignore interceptors from symbolizerDmitry Vyukov2014-04-111-0/+2
| | | | | | | ocassionally we see races coming from symbolizer interceptors (e.g. memcmp) reproducible only only on large complex programs llvm-svn: 206034
* [TSan] Fix a rare deadlock on multithreaded fork.Alexey Samsonov2014-04-031-2/+4
| | | | | | | | | | | | | | | | | | | | | | If a multi-threaded program calls fork(), TSan ignores all memory accesses in the child to prevent deadlocks in TSan runtime. This is OK, as child is probably going to call exec() as soon as possible. However, a rare deadlocks could be caused by ThreadIgnoreBegin() function itself. ThreadIgnoreBegin() remembers the current stack trace and puts it into the StackDepot to report a warning later if a thread exited with ignores enabled. Using StackDepotPut in a child process is dangerous: it locks a mutex on a slow path, which could be already locked in a parent process. The fix is simple: just don't put current stack traces to StackDepot in ThreadIgnoreBegin() and ThreadIgnoreSyncBegin() functions if we're running after a multithreaded fork. We will not report any "thread exited with ignores enabled" errors in this case anyway. Submitting this without a testcase, as I believe the standalone reproducer is pretty hard to construct. llvm-svn: 205534
* [TSan] Fix a typo ThreadIgnoreSyncEnd. Found by inspectionAlexey Samsonov2014-04-031-1/+1
| | | | llvm-svn: 205531
* [tsan] Remove an accidentally committed debug print.Alexander Potapenko2014-04-011-1/+0
| | | | llvm-svn: 205316
* [CMake] Rename add_compiler_rt_static_runtime to add_compiler_rt_runtime.Alexey Samsonov2014-03-312-2/+2
| | | | | | | | Soon there will be an option to build compiler-rt parts as shared libraries on Linux. Extracted from http://llvm-reviews.chandlerc.com/D3042 by Yuri Gribov. llvm-svn: 205183
* [TSan] Replace several Printf() calls with Report() to ease debugging.Alexander Potapenko2014-03-311-7/+8
| | | | llvm-svn: 205175
* tsan: fix deadlock during forkDmitry Vyukov2014-03-261-3/+3
| | | | | | ReportRace takes the two mutexes in the opposite order llvm-svn: 204809
* tsan: fix another compiler-injected memsetDmitry Vyukov2014-03-261-1/+2
| | | | | | newer gcc inserts memset here llvm-svn: 204808
* [tsan] Fix more warnings in TSan tests.Evgeniy Stepanov2014-03-251-33/+33
| | | | llvm-svn: 204715
* [tsan] Fix compiler warnings in TSan tests.Evgeniy Stepanov2014-03-251-2/+2
| | | | llvm-svn: 204712
* tsan: optimize vector clock operationsDmitry Vyukov2014-03-247-124/+632
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make vector clock operations O(1) for several important classes of use cases. See comments for details. Below are stats from a large server app, 77% of all clock operations are handled as O(1). Clock acquire : 25983645 empty clock : 6288080 fast from release-store : 14917504 contains my tid : 4515743 repeated (fast) : 2141428 full (slow) : 2636633 acquired something : 1426863 Clock release : 2544216 resize : 6241 fast1 : 197693 fast2 : 1016293 fast3 : 2007 full (slow) : 1797488 was acquired : 709227 clear tail : 1 last overflow : 0 Clock release store : 3446946 resize : 200516 fast : 469265 slow : 2977681 clear tail : 0 Clock acquire-release : 820028 llvm-svn: 204656
* tsan: reorder SyncVar members to reduce contentionDmitry Vyukov2014-03-241-2/+4
| | | | llvm-svn: 204655
* tsan: use read lock instead of write in atomic operations when possibleDmitry Vyukov2014-03-241-3/+8
| | | | llvm-svn: 204654
* [CMake] Rename the variableAlexey Samsonov2014-03-241-1/+1
| | | | llvm-svn: 204602
* [CMake] Respect CMAKE_CXX_FLAGS in custom clang_compile commandsAlexey Samsonov2014-03-241-1/+0
| | | | llvm-svn: 204593
* [sanitizer] print threads in deadlock reportKostya Serebryany2014-03-215-5/+29
| | | | llvm-svn: 204461
* [sanitizer] more human-readable deadlock reportsKostya Serebryany2014-03-212-12/+32
| | | | llvm-svn: 204454
* [libsanitizer] Introduce flag descriptions.Alexander Potapenko2014-03-202-27/+29
| | | | | | | | | Extend ParseFlag to accept the |description| parameter, add dummy values for all existing flags. As the flags are parsed their descriptions are stored in a global linked list. The tool can later call __sanitizer::PrintFlagDescriptions() to dump all the flag names and their descriptions. Add the 'help' flag and make ASan, TSan and MSan print the flags if 'help' is set to 1. llvm-svn: 204339
* tsan: remove unused function declarationsDmitry Vyukov2014-03-201-3/+0
| | | | llvm-svn: 204328
* tsan: deobfuscate global ctx variableDmitry Vyukov2014-03-2012-72/+33
| | | | llvm-svn: 204327
* tsan: use stack depot for goroutine creation stacks (as C++ threads do)Dmitry Vyukov2014-03-204-20/+6
| | | | llvm-svn: 204326
* tsan: remove unused declarationDmitry Vyukov2014-03-201-2/+0
| | | | llvm-svn: 204324
* tsan: add test for second_deadlock_stack flagDmitry Vyukov2014-03-193-3/+3
| | | | llvm-svn: 204240
* [CMake] Build sanitizer unit tests with -std=c++11Alexey Samsonov2014-03-191-0/+1
| | | | llvm-svn: 204234
* tsan: use attribute instead of compiler flag for tls-model=initial-exec as ↵Dmitry Vyukov2014-03-192-1/+2
| | | | | | asked in comments for r203111 llvm-svn: 204232
* tsan: preliminary support for Go deadlock detectorDmitry Vyukov2014-03-195-15/+40
| | | | llvm-svn: 204228
* [sanitizer] deadlock detector: a) initial support for suppressions, b) be ↵Kostya Serebryany2014-03-192-4/+14
| | | | | | more robust in case we failed to extract a stack trace for one of the locks llvm-svn: 204225
* tsan: deadlock detector: add deadlock detector flagsDmitry Vyukov2014-03-185-10/+40
| | | | | | the first flags is to enable printing of the second stack per edge llvm-svn: 204150
* tsan: deadlock detector: print 2 stacks per deadlock edgeDmitry Vyukov2014-03-181-0/+4
| | | | llvm-svn: 204149
* tsan: deadlock detector: add ability to ignore destruction of global mutexesDmitry Vyukov2014-03-181-2/+33
| | | | llvm-svn: 204146
* tsan: lazily initialize deadlock detector runtimeDmitry Vyukov2014-03-181-13/+43
| | | | | | this is necessaary because dlsym can call malloc, which can lock mutexes that we intercept llvm-svn: 204141
* tsan: support up to 1<<20 mutexes in standalone deadlock detectorDmitry Vyukov2014-03-181-1/+1
| | | | llvm-svn: 204127
* tsan: add missing interceptor for embed symbolizerDmitry Vyukov2014-03-181-0/+18
| | | | llvm-svn: 204124
* [sanitizer] a bit more informative deadlock detector report (still lots to ↵Kostya Serebryany2014-03-181-8/+16
| | | | | | improve) llvm-svn: 204115
* [sanitizer] fix the deadlock detector buildKostya Serebryany2014-03-171-1/+1
| | | | llvm-svn: 204044
OpenPOWER on IntegriCloud