Commit Graph

276 Commits

Author SHA1 Message Date
Dmitry Vyukov 0d677279f6 tsan: better error message if we fail to intercept some function
currently the message is SIGSEGV

llvm-svn: 169231
2012-12-04 07:28:25 +00:00
Dmitry Vyukov d229abe49a tsan: check if PWD env var is absent
On some programs I see:
failed to open suppressions file '<null>/testing/tsan/v2/tsan.supp'

llvm-svn: 169230
2012-12-04 07:27:32 +00:00
Dmitry Vyukov e982a1d368 tsan: describe global vars (module+offset for now)
llvm-svn: 169122
2012-12-03 11:45:34 +00:00
Dmitry Vyukov e993dac233 tsan: fix int overflow and several instances where tid is used with ignore
llvm-svn: 169029
2012-11-30 20:02:11 +00:00
Dmitry Vyukov d05418eac6 tsan: suppress weird race reports when JVM is embed into the process
llvm-svn: 169019
2012-11-30 17:45:53 +00:00
Dmitry Vyukov 1450ac6406 tsan: add __libc_memalign interceptor (used by dynamic loader to allocate tls for dlopen'ed modules)
llvm-svn: 169017
2012-11-30 17:27:58 +00:00
Dmitry Vyukov 71d759d392 tsan: intercept mlock() because of the kernel bug
llvm-svn: 168987
2012-11-30 06:50:15 +00:00
Dmitry Vyukov 0a4d875c48 tsan: fix bug that leads to spurious use-after-free reports
llvm-svn: 168985
2012-11-30 06:39:01 +00:00
Dmitry Vyukov 4a48553869 tsan: explicitly say that failed to restore the stack
llvm-svn: 168790
2012-11-28 13:30:06 +00:00
Dmitry Vyukov eb3d36e649 tsan: address several review comments
llvm-svn: 168789
2012-11-28 13:01:32 +00:00
Dmitry Vyukov 3374e3f874 tsan: add log_path parameter (similar to asan)
remove old log_fileno

llvm-svn: 168788
2012-11-28 12:56:52 +00:00
Dmitry Vyukov e1a7f338a3 tsan: dynamic history size
introduces history_size parameter that can be used to control trace size at startup

llvm-svn: 168786
2012-11-28 12:19:50 +00:00
Dmitry Vyukov 00e4604d6b tsan: change fast state layout in preparation to dynamic traces
llvm-svn: 168784
2012-11-28 10:49:27 +00:00
Dmitry Vyukov 2429b02770 tsan: move traces from tls into dedicated storage at fixed address
helps to reduce tls size (it's weird to have multi-MB tls)
will help with dynamically adjustable trace size

llvm-svn: 168783
2012-11-28 10:35:31 +00:00
Dmitry Vyukov 05d7ade34d tsan: add description of memory layouts in different configs
llvm-svn: 168777
2012-11-28 07:44:26 +00:00
Dmitry Vyukov ec8da99846 tsan: fix macro mess
llvm-svn: 168697
2012-11-27 12:51:16 +00:00
Dmitry Vyukov 69a071d5a6 tsan: fix compilation for dead old compilers (why we are supporting them at all?..)
llvm-svn: 168693
2012-11-27 09:35:44 +00:00
Dmitry Vyukov 210c21129e tsan: add memory range access functions to public iface
llvm-svn: 168692
2012-11-27 08:41:39 +00:00
Dmitry Vyukov 59d58665ee tsan: add 128-bit atomic operations
llvm-svn: 168683
2012-11-27 07:41:27 +00:00
Dmitry Vyukov 10362c46f1 tsan: refactor atomic operations implementation
do the atomic operation under the sync object mutex
make acquire/release sync atomic with the operation itself
combine acquire and release into a single acq_rel operation

llvm-svn: 168682
2012-11-27 07:25:50 +00:00
Dmitry Vyukov 20678e2b68 tsan: explicitly mark symbols referenced from assembly as hidden
this allows to build tsan runtime as dynamic library

llvm-svn: 168589
2012-11-26 14:20:26 +00:00
Dmitry Vyukov 3b4501254f tsan: add atomic nand operation
llvm-svn: 168584
2012-11-26 09:42:56 +00:00
Dmitry Vyukov ce7a1ba196 tsan: faster memory reset for Go
llvm-svn: 168567
2012-11-25 16:05:42 +00:00
Kostya Serebryany df198db1aa [asan/tsan] get rid of kPageSize completely in favor of GetPageSizeCached(). This makes the code friendly to more platforms
llvm-svn: 168537
2012-11-24 05:03:11 +00:00
Dmitry Vyukov 195eda9922 tsan: add failure memory order to atomic compare exchange functions
llvm-svn: 168518
2012-11-23 15:51:45 +00:00
Kostya Serebryany f22c697f58 [asan] get rid of some of the uses of kPageSize. The intent is to get rid of it completely to support platforms with multiple possible page sizes.
llvm-svn: 168517
2012-11-23 15:38:49 +00:00
Dmitry Vyukov db584aded7 tsan: ensure than func entry/exit are inlined
llvm-svn: 168506
2012-11-23 07:14:11 +00:00
Dmitry Vyukov 6971414f3e tsan: fix more bugs in signal handling
llvm-svn: 168497
2012-11-22 13:53:54 +00:00
Dmitry Vyukov 3048e1a399 tsan: add missing \n in report
llvm-svn: 168496
2012-11-22 13:38:28 +00:00
Dmitry Vyukov aeed45cde0 tsan: explictly say when we fail to restore a stack trace
llvm-svn: 168423
2012-11-21 11:44:20 +00:00
Dmitry Vyukov 9ca2afd3a1 tsan: fix handling of signals
(do not execute synchronous signals in recursive interceptors)

llvm-svn: 168421
2012-11-21 11:12:33 +00:00
Alexey Samsonov 4ac66c49da [TSan] use explicit ctor for BlockingCall
llvm-svn: 168150
2012-11-16 11:21:07 +00:00
Alexey Samsonov 038e3489d9 [TSan] use llvm-symbolizer to run tsan tests
llvm-svn: 168146
2012-11-16 10:16:14 +00:00
Dmitry Vyukov 933c9889aa tsan: remove unused parameter
llvm-svn: 168060
2012-11-15 18:49:08 +00:00
Dmitry Vyukov f34db58c20 tsan: switch to 4 shadow cells by default (since that's what we use everywhere now)
llvm-svn: 168059
2012-11-15 18:44:22 +00:00
Dmitry Vyukov 262465c126 tsan: eevn better handling of signals
add interceptor for poll()
in addition process signals in every atomic op
in addition process signals in blocking libc functions

llvm-svn: 168050
2012-11-15 17:40:49 +00:00
Dmitry Vyukov 6d67d3b0ee tsan: remove unused const
llvm-svn: 167835
2012-11-13 14:13:21 +00:00
Dmitry Vyukov 041eaf976c tsan: better function names
llvm-svn: 167834
2012-11-13 14:05:58 +00:00
Alexey Samsonov b8a5f99bee [TSan] Add output test for write under reader lock
llvm-svn: 167833
2012-11-13 14:05:02 +00:00
Dmitry Vyukov dcba4d1288 tsan: fix stats collection
llvm-svn: 167832
2012-11-13 13:53:43 +00:00
Dmitry Vyukov 317f39290d tsan: intercept gettimeofday()
llvm-svn: 167630
2012-11-09 19:55:06 +00:00
Alexey Samsonov ae9b18b607 [Sanitizer] add sanity checks for communication with external symbolizer
llvm-svn: 167617
2012-11-09 14:45:30 +00:00
Dmitry Vyukov 805006b0ab tsan: switch to new memory_order constants (ABI compatible)
llvm-svn: 167614
2012-11-09 14:11:51 +00:00
Dmitry Vyukov 4e5f72d380 tsan: add __tsan_atomicX_compare_exchange_val() function
It's easier to call from compiler module.

llvm-svn: 167611
2012-11-09 12:54:37 +00:00
Dmitry Vyukov 26216e4ae3 tsan: add range access functions for Go
llvm-svn: 167580
2012-11-08 13:38:45 +00:00
Dmitry Vyukov e829b6231a tsan: change TSAN_OPTIONS->GORACE in build script as well
llvm-svn: 167578
2012-11-08 13:23:13 +00:00
Dmitry Vyukov 9952b674ca tsan: use GORACE env for options for Go
llvm-svn: 167575
2012-11-08 11:32:40 +00:00
Dmitry Vyukov 67dc5702f8 tsan: do not sleep at exit if there are no other threads
llvm-svn: 167533
2012-11-07 16:41:57 +00:00
Dmitry Vyukov ea4f1990e1 tsan: add flag to suppress all reports (useful for benchmarking)
llvm-svn: 167532
2012-11-07 16:14:12 +00:00
Dmitry Vyukov e11f2920c9 tsan: more precise handling of finalizers
llvm-svn: 167530
2012-11-07 15:08:20 +00:00