| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 207954
|
|
|
|
|
|
| |
Add move fopen/freopen interceptors from TSan to common.
llvm-svn: 207224
|
|
|
|
|
|
| |
Fixes issue https://code.google.com/p/thread-sanitizer/issues/detail?id=45
llvm-svn: 207218
|
|
|
|
| |
llvm-svn: 207211
|
|
|
|
| |
llvm-svn: 207209
|
|
|
|
| |
llvm-svn: 207208
|
|
|
|
|
|
|
| |
+ fixes crashes due to races on symbolizer, see
https://code.google.com/p/thread-sanitizer/issues/detail?id=55
llvm-svn: 207206
|
|
|
|
|
|
|
| |
+ fixes crashes due to races on symbolizer, see:
https://code.google.com/p/thread-sanitizer/issues/detail?id=55
llvm-svn: 207204
|
|
|
|
|
|
| |
Fixes https://code.google.com/p/thread-sanitizer/issues/detail?id=56
llvm-svn: 207114
|
|
|
|
|
|
| |
fixes issue http://code.google.com/p/thread-sanitizer/issues/detail?id=57
llvm-svn: 206980
|
|
|
|
|
|
| |
this fires when a user makes mmap with fixed address (see the test)
llvm-svn: 206952
|
|
|
|
|
|
| |
otherwise it runs for 50 seconds in debug mode
llvm-svn: 206950
|
|
|
|
|
|
| |
hacks to TSan
llvm-svn: 206423
|
|
|
|
|
|
| |
otherwise reports get intermixed
llvm-svn: 206043
|
|
|
|
|
|
|
| |
the new optimizations break when thread ids gets reused (clocks go backwards)
add the necessary tests as well
llvm-svn: 206035
|
|
|
|
|
|
|
| |
ocassionally we see races coming from symbolizer interceptors (e.g. memcmp)
reproducible only only on large complex programs
llvm-svn: 206034
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 205531
|
|
|
|
| |
llvm-svn: 205316
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 205175
|
|
|
|
|
|
| |
ReportRace takes the two mutexes in the opposite order
llvm-svn: 204809
|
|
|
|
|
|
| |
newer gcc inserts memset here
llvm-svn: 204808
|
|
|
|
| |
llvm-svn: 204715
|
|
|
|
| |
llvm-svn: 204712
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 204655
|
|
|
|
| |
llvm-svn: 204654
|
|
|
|
| |
llvm-svn: 204602
|
|
|
|
| |
llvm-svn: 204593
|
|
|
|
| |
llvm-svn: 204461
|
|
|
|
| |
llvm-svn: 204454
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 204328
|
|
|
|
| |
llvm-svn: 204327
|
|
|
|
| |
llvm-svn: 204326
|
|
|
|
| |
llvm-svn: 204324
|
|
|
|
| |
llvm-svn: 204240
|
|
|
|
| |
llvm-svn: 204234
|
|
|
|
|
|
| |
asked in comments for r203111
llvm-svn: 204232
|
|
|
|
| |
llvm-svn: 204228
|
|
|
|
|
|
| |
more robust in case we failed to extract a stack trace for one of the locks
llvm-svn: 204225
|
|
|
|
|
|
| |
the first flags is to enable printing of the second stack per edge
llvm-svn: 204150
|
|
|
|
| |
llvm-svn: 204149
|
|
|
|
| |
llvm-svn: 204146
|
|
|
|
|
|
| |
this is necessaary because dlsym can call malloc, which can lock mutexes that we intercept
llvm-svn: 204141
|
|
|
|
| |
llvm-svn: 204127
|
|
|
|
| |
llvm-svn: 204124
|
|
|
|
|
|
| |
improve)
llvm-svn: 204115
|
|
|
|
| |
llvm-svn: 204044
|