Re: [Qemu-devel] [PATCH v2 0/9] A couple of fixes for ThreadSanitizer

2016-09-30 Thread Alex Bennée

Paolo Bonzini  writes:

> On 22/09/2016 12:13, Alex Bennée wrote:
>> Hi,
>>

>
> Queued patches 2-8 (1 is already in and 9 is outside my knowledge), thanks.

Actually could you take them from the v3 I've just posted? I've cleaned
up a bunch of the commit messages and dropped the blacklist patch.

--
Alex Bennée



Re: [Qemu-devel] [PATCH v2 0/9] A couple of fixes for ThreadSanitizer

2016-09-30 Thread Paolo Bonzini


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 0/9] A couple of fixes for ThreadSanitizer

2016-09-22 Thread Alex Bennée
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