[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check t
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX |
Date: |
Thu, 18 Jun 2015 20:53:04 +0100 |
On 18 June 2015 at 19:32, Mark Burton <address@hidden> wrote:
> for the 1<<size thing - I think that code has been used elsewhere, which is a
> little worrying - I’ll check.
>
>> On 18 Jun 2015, at 17:56, Peter Maydell <address@hidden> wrote:
>>
>> On 18 June 2015 at 16:44, <address@hidden> wrote:
>>> + uint64_t oldval, *p;
>>> + p = address_space_map(cs->as, paddr, &len, true);
>>> + if (len == 8 << size) {
>>> + oldval = (uint64_t)env->exclusive_val;
>>> + result = (atomic_cmpxchg(p, oldval, (uint64_t)newval) ==
>>> oldval);
>>
>> You can't do an atomic operation on a type that's larger than
>> the pointer size of the host system. That means that for
>> code that isn't host specific, like this, in practice you
>> can't do an atomic operation on a larger size than 4 bytes.
>>
>
> I thought they were polymorphic across all types, I didn’t notice
> the caveat of the size, sorry about that. That makes things more
> entertaining :-)
It's polymorphic across most types... It's been suggested
that the macros should refuse types with size > ptrsize
on all systems, so you don't have to get bitten by a
ppc32 compile failure after the fact, but I don't think that
anybody's written the patch yet.
-- PMM
- [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX, fred . konrad, 2015/06/18
- Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX, Paolo Bonzini, 2015/06/18
- Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX, Peter Maydell, 2015/06/18
- Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX, Mark Burton, 2015/06/18
- Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX,
Peter Maydell <=
- Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX, Mark Burton, 2015/06/19
- Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX, Paolo Bonzini, 2015/06/19
- Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX, Mark Burton, 2015/06/19
- Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX, Paolo Bonzini, 2015/06/19
- Re: [Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX, Mark Burton, 2015/06/19