From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33262) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpw3R-0005W4-UI for qemu-devel@nongnu.org; Fri, 30 Sep 2016 07:32:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bpw3M-0003gs-UY for qemu-devel@nongnu.org; Fri, 30 Sep 2016 07:32:36 -0400 Received: from mail-wm0-x22b.google.com ([2a00:1450:400c:c09::22b]:36793) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bpw3M-0003ge-Nk for qemu-devel@nongnu.org; Fri, 30 Sep 2016 07:32:32 -0400 Received: by mail-wm0-x22b.google.com with SMTP id k125so19953740wma.1 for ; Fri, 30 Sep 2016 04:32:32 -0700 (PDT) Sender: Paolo Bonzini References: <20160922101316.13064-1-alex.bennee@linaro.org> From: Paolo Bonzini Message-ID: Date: Fri, 30 Sep 2016 13:32:28 +0200 MIME-Version: 1.0 In-Reply-To: <20160922101316.13064-1-alex.bennee@linaro.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v2 0/9] A couple of fixes for ThreadSanitizer List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?Q?Alex_Benn=c3=a9e?= , qemu-devel@nongnu.org, cota@braap.org, stefanha@redhat.com, kwolf@redhat.com Cc: mttcg@listserver.greensocs.com, peter.maydell@linaro.org, claudio.fontana@huawei.com, nikunj@linux.vnet.ibm.com, jan.kiszka@siemens.com, mark.burton@greensocs.com, a.rigo@virtualopensystems.com, serge.fdrv@gmail.com, bobby.prani@gmail.com, rth@twiddle.net, fred.konrad@greensocs.com 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.