On 22/09/2016 12:13, Alex Bennée wrote: > 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 >
Queued patches 2-8 (1 is already in and 9 is outside my knowledge), thanks.