[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/6] qsp: drop atomics when using the seqlock
From: |
Emilio G. Cota |
Subject: |
Re: [Qemu-devel] [PATCH 1/6] qsp: drop atomics when using the seqlock |
Date: |
Mon, 10 Sep 2018 11:44:42 -0400 |
User-agent: |
Mutt/1.9.4 (2018-02-28) |
On Mon, Sep 10, 2018 at 01:32:15 +0200, Paolo Bonzini wrote:
> On 03/09/2018 19:18, Emilio G. Cota wrote:
> > Using atomics here is a mistake since they're not guaranteed
> > to compile.
>
> But isn't it technically a C11 data race if you don't use atomics?
Yes, it's undefined behaviour.
> Could we make nocheck read/set degrade to just a volatile access when
> used on a variable that is bigger than pointers, or perhaps always
> except when using tsan?
But volatile wouldn't save you from undefined behaviour, would it?
A simpler and definitely correct alternative is to just use a
spinlock instead of the seqlock also for reads when !CONFIG_ATOMIC64.
We don't care about scalability on those rare hosts anyway, so
I'd go with that.
Thanks,
Emilio
- Re: [Qemu-devel] [PATCH 5/6] target/i386/translate: use thread-local storage in !user-mode, (continued)
[Qemu-devel] [PATCH 2/6] test-rcu-list: avoid torn accesses to n_reclaims and n_nodes_removed, Emilio G. Cota, 2018/09/03
[Qemu-devel] [PATCH 1/6] qsp: drop atomics when using the seqlock, Emilio G. Cota, 2018/09/03
Re: [Qemu-devel] [PATCH 0/6] i386 + x86_64 mttcg, Paolo Bonzini, 2018/09/11