[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 0/9] A couple of fixes for ThreadSanitizer
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [PATCH v2 0/9] A couple of fixes for ThreadSanitizer |
Date: |
Thu, 22 Sep 2016 11:13:07 +0100 |
Hi,
This is v2 of the ThreadSanitizer fixes. Changes from the last
version:
- added Marc-André's review tags
- added qga/command: use QEMU atomic primitives
- simplified ui/vnc-enc-tight: remove switch and have single return
- fixed the Travis CI build (that was painful....)
There is still some work to do to go through and fix warnings from the
sanitizer. Notably "make check" doesn't complete and generates a load
of warnings and I haven't investigated the warnings generated by
co-routines.
With this series applied you can enable ThreadSanitizer with the
following command line:
./configure --extra-cflags="-g3 -O0 \
-fsantize=thread \
-fsanitize-blacklist=/home/alex/lsrc/qemu/qemu.git/blacklist.tsan" \
--with-coroutine=gthread --disable-pie --enable-debug --enable-debug-info
breakdown:
-fsanitize=thread - enables sanitizer
-fsanitize-blacklist - skip things the compiler finds hard, like SSE
--with-coroutine=gthread - tsan chokes on other forms of coroutine
--disable-pie - tsan no longer works with PIE
--enable-debug --enable-debug-info - better backtraces
Alex Bennée (8):
ui/vnc-enc-tight: remove switch and have single return
tcg/optimize: move default return out of if statement
new: blacklist.tsan
qom/object: update class cache atomically
cpu: atomically modify cpu->exit_request
util/qht: atomically set b->hashes
qga/command: use QEMU atomic primitives
.travis.yml: add gcc sanitizer build
Paolo Bonzini (1):
seqlock: use atomic writes for the sequence
.travis.yml | 45 +++++++++++++++++++++++++++++++++++++++++++++
blacklist.tsan | 2 ++
cpu-exec.c | 8 ++++----
include/qemu/seqlock.h | 4 ++--
qga/commands.c | 17 +++++++++--------
qom/cpu.c | 4 ++--
qom/object.c | 15 ++++++++-------
tcg/optimize.c | 3 +--
ui/vnc-enc-tight.c | 6 ++----
util/qht.c | 10 +++++-----
10 files changed, 80 insertions(+), 34 deletions(-)
create mode 100644 blacklist.tsan
--
2.9.3
- [Qemu-devel] [PATCH v2 0/9] A couple of fixes for ThreadSanitizer,
Alex Bennée <=
- [Qemu-devel] [PATCH v2 2/9] tcg/optimize: move default return out of if statement, Alex Bennée, 2016/09/22
- [Qemu-devel] [PATCH v2 1/9] ui/vnc-enc-tight: remove switch and have single return, Alex Bennée, 2016/09/22
- [Qemu-devel] [PATCH v2 4/9] seqlock: use atomic writes for the sequence, Alex Bennée, 2016/09/22
- [Qemu-devel] [PATCH v2 6/9] cpu: atomically modify cpu->exit_request, Alex Bennée, 2016/09/22
- [Qemu-devel] [PATCH v2 3/9] new: blacklist.tsan, Alex Bennée, 2016/09/22