Re: [PATCH 12/19] configure: added tsan support for blacklist.

2020-05-26 Thread Robert Foley
On Sat, 23 May 2020 at 13:27, Emilio G. Cota  wrote:
>
> On Fri, May 22, 2020 at 12:07:48 -0400, Robert Foley wrote:
> > Initially put several files into blacklist that were
> > causing the most problems, namely bitops.c and bitmap.c.
> >
> > Signed-off-by: Robert Foley 
> > ---
> >  configure | 3 ++-
> >  tests/tsan/blacklist.tsan | 5 +
> >  2 files changed, 7 insertions(+), 1 deletion(-)
> >  create mode 100644 tests/tsan/blacklist.tsan
> >
> > diff --git a/configure b/configure
> > index c95c54fb48..8a86a0638d 100755
> > --- a/configure
> > +++ b/configure
> > @@ -6306,7 +6306,8 @@ if test "$have_asan" = "yes"; then
> >  fi
> >  if test "$have_tsan" = "yes" ; then
> >if test "$have_tsan_iface_fiber" = "yes" ; then
> > -QEMU_CFLAGS="-fsanitize=thread $QEMU_CFLAGS"
> > +QEMU_CFLAGS="-fsanitize=thread -fsanitize-blacklist="\
> > + "\$(SRC_PATH)/tests/tsan/blacklist.tsan $QEMU_CFLAGS"
>
> I presume the goal here is to fix these races later (my default assumption
> is that warnings == races, since most warnings are indeed races). If so,
> please consider making the suppression optional (via
> "--extra-cflags=-fsanitize-blacklist=path-to-this-file"), since that
> way the reports are likely to get more eyeballs.

Yes, the goal is to fix these later.  Will add an explanation of this in
blacklist.tsan.

We will make the blacklist optional, and also add some documentation
on how to use the blacklist in the TSan section of testing.rst.

Thanks & Regards,
-Rob

>
> Thanks,
>
> E.



Re: [PATCH 12/19] configure: added tsan support for blacklist.

2020-05-23 Thread Emilio G. Cota
On Fri, May 22, 2020 at 12:07:48 -0400, Robert Foley wrote:
> Initially put several files into blacklist that were
> causing the most problems, namely bitops.c and bitmap.c.
> 
> Signed-off-by: Robert Foley 
> ---
>  configure | 3 ++-
>  tests/tsan/blacklist.tsan | 5 +
>  2 files changed, 7 insertions(+), 1 deletion(-)
>  create mode 100644 tests/tsan/blacklist.tsan
> 
> diff --git a/configure b/configure
> index c95c54fb48..8a86a0638d 100755
> --- a/configure
> +++ b/configure
> @@ -6306,7 +6306,8 @@ if test "$have_asan" = "yes"; then
>  fi
>  if test "$have_tsan" = "yes" ; then
>if test "$have_tsan_iface_fiber" = "yes" ; then
> -QEMU_CFLAGS="-fsanitize=thread $QEMU_CFLAGS"
> +QEMU_CFLAGS="-fsanitize=thread -fsanitize-blacklist="\
> + "\$(SRC_PATH)/tests/tsan/blacklist.tsan $QEMU_CFLAGS"

I presume the goal here is to fix these races later (my default assumption
is that warnings == races, since most warnings are indeed races). If so,
please consider making the suppression optional (via
"--extra-cflags=-fsanitize-blacklist=path-to-this-file"), since that
way the reports are likely to get more eyeballs.

Thanks,

E.



[PATCH 12/19] configure: added tsan support for blacklist.

2020-05-22 Thread Robert Foley
Initially put several files into blacklist that were
causing the most problems, namely bitops.c and bitmap.c.

Signed-off-by: Robert Foley 
---
 configure | 3 ++-
 tests/tsan/blacklist.tsan | 5 +
 2 files changed, 7 insertions(+), 1 deletion(-)
 create mode 100644 tests/tsan/blacklist.tsan

diff --git a/configure b/configure
index c95c54fb48..8a86a0638d 100755
--- a/configure
+++ b/configure
@@ -6306,7 +6306,8 @@ if test "$have_asan" = "yes"; then
 fi
 if test "$have_tsan" = "yes" ; then
   if test "$have_tsan_iface_fiber" = "yes" ; then
-QEMU_CFLAGS="-fsanitize=thread $QEMU_CFLAGS"
+QEMU_CFLAGS="-fsanitize=thread -fsanitize-blacklist="\
+   "\$(SRC_PATH)/tests/tsan/blacklist.tsan $QEMU_CFLAGS"
 QEMU_LDFLAGS="-fsanitize=thread $QEMU_LDFLAGS"
   else
 echo "Cannot enable TSAN due to missing fiber annotation interface."
diff --git a/tests/tsan/blacklist.tsan b/tests/tsan/blacklist.tsan
new file mode 100644
index 00..67dd809e96
--- /dev/null
+++ b/tests/tsan/blacklist.tsan
@@ -0,0 +1,5 @@
+# TSan is not happy about setting/getting of dirty bits,
+# for example, cpu_physical_memory_set_dirty_range,
+# and cpu_physical_memory_get_dirty.
+src:bitops.c
+src:bitmap.c
-- 
2.17.1