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 | 8096a8c86ff03213f43ed3cda182ae3005c3cdf7 (patch) | |
tree | 942edbedf347334ae45d10e20c66b645c2e606f4 /lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | |
parent | de27a6dcfa565aeaceb481118fbe47bf3fb31b91 (diff) | |
download | bcm5719-llvm-8096a8c86ff03213f43ed3cda182ae3005c3cdf7.tar.gz bcm5719-llvm-8096a8c86ff03213f43ed3cda182ae3005c3cdf7.zip |
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
llvm-svn: 298809
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp')
0 files changed, 0 insertions, 0 deletions