qemu-devel
[Top][All Lists]
Advanced

[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 16:56:46 +0100

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.

(It happens to work on x86, I think, but this won't build
on ppc32, for instance.)

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]