RFR(M): 8154736: enhancement of cmpxchg and copy_to_survivor for ppc64
Andrew Haley
aph at redhat.com
Mon Oct 31 09:32:44 UTC 2016
On 30/10/16 21:26, David Holmes wrote:
> On 31/10/2016 4:36 AM, Andrew Haley wrote:
>>
>> And, while we're on the subject, is memory_order_conservative actually
>> defined anywhere?
>
> No. It was chosen to represent the current status quo that the Atomic::
> ops should all be (by default) full bi-directional fences.
Does that mean that a CAS is actually stronger than a load acquire
followed by a store release? And that a CAS is a release fence even
when it fails and no store happens?
And that a conservative load is a *store* barrier?
> It is a place holder until this memory order stuff is fleshed out in
> hotspot. We didn't adopt C++ memory_order_seq_cst as is isn't
> obvious that actually matches our current semantics. At least it
> isn't obvious to me.
It's not obvious to me either, because I don't know what our current
semantics are. But I believe that if we need anything stronger than
sequential consistency we should look at fixing the callers of the
Atomic:: ops. But I guess the real problem is that we don't know
which callers actually need the super-strong guarantees, or even that
any exist.
Andrew.
More information about the hotspot-compiler-dev
mailing list