RFR(S): 8229422: Taskqueue: Outdated selection of weak memory model platforms

Andrew Haley aph at redhat.com
Tue Jan 14 15:08:42 UTC 2020


On 1/14/20 3:05 PM, Andrew Haley wrote:
> On 1/14/20 3:00 PM, Andrew Haley wrote:
>> On 8/15/19 4:49 PM, Derek White wrote:
>>> However, setting CPU_MULTI_COPY_ATOMIC for AArch64 would result in changing behavior (removing fence in taskqueue) that should be looked at and tested by the aarch64 folks, so if Andrew Haley agrees, I suggest deferring changing this AArch64 behavior to a separate issue.
>>
>> Well, yes. What i don't understand is what any of this has to do with
>> multi-copy atomicity. The fence is needed for _age.get() on all machines
>> with relaxed memory consitency, AFAICS.
>
> Ah, I found the answer in another thread:
>
> http://mail.openjdk.java.net/pipermail/hotspot-dev/2013-March/008853.html

   "No, the problem is not reordering.  The problem is that _bottom,
   which is read after _age, might be older than _age because another
   processor didn't write it back yet.  The fence (sync) makes the
   current thread wait until it has the new _bottom.

   "On Power, a write is not visible to all other threads simultaneously
   (no multipl-copy-atomicity)."

So, my question: on a machine with relaxed memory, do we still need an acquire
fence?

-- 
Andrew Haley  (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671



More information about the hotspot-gc-dev mailing list