[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 0/9] A couple of fixes for ThreadSanitizer
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/9] A couple of fixes for ThreadSanitizer |
Date: |
Fri, 30 Sep 2016 13:32:28 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 |
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.
- [Qemu-devel] [PATCH v2 6/9] cpu: atomically modify cpu->exit_request, (continued)
- [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
- [Qemu-devel] [PATCH v2 8/9] qga/command: use QEMU atomic primitives, Alex Bennée, 2016/09/22
- [Qemu-devel] [PATCH v2 5/9] qom/object: update class cache atomically, Alex Bennée, 2016/09/22
- [Qemu-devel] [PATCH v2 9/9] .travis.yml: add gcc sanitizer build, Alex Bennée, 2016/09/22
- [Qemu-devel] [PATCH v2 7/9] util/qht: atomically set b->hashes, Alex Bennée, 2016/09/22
- Re: [Qemu-devel] [PATCH v2 0/9] A couple of fixes for ThreadSanitizer,
Paolo Bonzini <=