[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 2/3] atomics: emit an smp_read_barrier_depend
From: |
Emilio G. Cota |
Subject: |
Re: [Qemu-devel] [PATCH v2 2/3] atomics: emit an smp_read_barrier_depends() barrier only for Sparc and Thread Sanitizer |
Date: |
Wed, 25 May 2016 11:06:33 -0400 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Wed, May 25, 2016 at 14:16:56 +0200, Paolo Bonzini wrote:
> On 24/05/2016 22:06, Emilio G. Cota wrote:
> > For correctness, smp_read_barrier_depends() is only required to
> > emit a barrier on Sparc hosts. However, we are currently emitting
> > a consume fence unconditionally.
>
> Let's say why this is suboptimal:
>
> ... and most compilers currently treat consume and acquire fences as
> equivalent.
>
> Likewise, let's add a comment like this:
>
> +/* Most compilers currently treat consume and acquire the same, but really
> + * no processors except Alpha need a barrier here. Leave it in if
> + * using Thread Sanitizer to avoid warnings, otherwise optimize it away.
> + */
>
> If okay I can do the change myself.
On Wed, May 25, 2016 at 14:20:02 +0200, Paolo Bonzini wrote:
> On 24/05/2016 22:06, Emilio G. Cota wrote:
> > Currently we emit a consume-load in atomic_rcu_read. This is
> > overkill for non-Sparc hosts, and is only useful to make
> > things easier for Thread Sanitizer, which as far as I understand
> > works best without explicit fences.
>
> Likewise:
>
> Currently we emit a consume-load in atomic_rcu_read. Because of
> limitations in current compilers, this is overkill for non-Alpha hosts
> and it is only useful to make Thread Sanitizer work.
>
> and
>
> +/* See above: most compilers currently treat consume and acquire the
> + * same, but this slows down atomic_rcu_read unnecessarily.
> + */
Please go ahead with these changes. Don't forget to s/Sparc/Alpha/ on the
commit messages! There are 3 bogus Sparc's in the commit log of
(my) patch 2/3, including the commit title.
Thanks,
Emilio