diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-03-26 15:27:04 +0000 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-03-26 15:27:04 +0000 |
| commit | 96ccf181c8c1bf446bae8fc738b3dc8da5a65cfe (patch) | |
| tree | f748f9f972ba30415914b0bd3863526a3578b590 /lib/tsan/rtl/tsan.syms.extra | |
| parent | 7218fa55e35c76ef0947cb0e9261696dc11e168d (diff) | |
| download | compiler-rt-96ccf181c8c1bf446bae8fc738b3dc8da5a65cfe.tar.gz | |
tsan: add new mutex annotations
There are several problems with the current annotations (AnnotateRWLockCreate and friends):
- they don't fully support deadlock detection (we need a hook _before_ mutex lock)
- they don't support insertion of random artificial delays to perturb execution (again we need a hook _before_ mutex lock)
- they don't support setting extended mutex attributes like read/write reentrancy (only "linker init" was bolted on)
- they don't support setting mutex attributes if a mutex don't have a "constructor" (e.g. static, Java, Go mutexes)
- they don't ignore synchronization inside of lock/unlock operations which leads to slowdown and false negatives
The new annotations solve of the above problems. See tsan_interface.h for the interface specification and comments.
Reviewed in https://reviews.llvm.org/D31093
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@298809 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/tsan/rtl/tsan.syms.extra')
| -rw-r--r-- | lib/tsan/rtl/tsan.syms.extra | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/tsan/rtl/tsan.syms.extra b/lib/tsan/rtl/tsan.syms.extra index 22dfde914..ab5b5a4fc 100644 --- a/lib/tsan/rtl/tsan.syms.extra +++ b/lib/tsan/rtl/tsan.syms.extra @@ -9,6 +9,16 @@ __tsan_java* __tsan_unaligned* __tsan_release __tsan_acquire +__tsan_mutex_create +__tsan_mutex_destroy +__tsan_mutex_pre_lock +__tsan_mutex_post_lock +__tsan_mutex_pre_unlock +__tsan_mutex_post_unlock +__tsan_mutex_pre_signal +__tsan_mutex_post_signal +__tsan_mutex_pre_divert +__tsan_mutex_post_divert __ubsan_* Annotate* WTFAnnotate* |
