[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-hotspot-gc-dev
Subject:    Re: RFR: 8261495: Shenandoah: reconsider update references memory ordering [v4]
From:       Aleksey Shipilev <shade () openjdk ! java ! net>
Date:       2021-05-19 16:01:50
Message-ID: n2TOurA-3-ZaqmPzVz49qhQ8X9k7bZHud--8_HmxfdE=.3a9d826d-54db-473d-aec2-544079cf16a0 () github ! com
[Download RAW message or body]

On Tue, 16 Feb 2021 13:21:00 GMT, Aleksey Shipilev <shade@openjdk.org> wrote:

> > Shenandoah update heap references code uses default Atomic::cmpxchg to avoid \
> > races with mutator updates. Hotspot's default for atomic operations is \
> > memory_order_conservative, which emits two-way memory fences around the CASes at \
> > least on AArch64 and PPC64. 
> > This seems to be excessive for Shenandoah update references code, and "release" \
> > is enough. We do not seem to piggyback on update-references memory effects \
> > anywhere (in fact, if not for mutator, we would not even need a CAS). But, there \
> > is an interplay with concurrent evacuation and updates from self-healing. 
> > Average time goes down, the number of GC cycles go up, since the cycles are \
> > shorter. 
> > Additional testing:
> > - [x] Linux x86_64 hotspot_gc_shenandoah
> > - [x] Linux AArch64 hotspot_gc_shenandoah
> > - [x] Linux AArch64 tier1 with Shenandoah
> 
> Aleksey Shipilev has updated the pull request with a new target base due to a merge \
> or a rebase. The incremental webrev excludes the unrelated changes brought in by \
> the merge/rebase. The pull request contains 10 additional commits since the last \
> revision: 
> - Comment touchup
> - Specialize out witness-checking methods, drop acquire again
> - Even more explanation
> - Move the comment
> - Also handle clearing the oops
> - Minor touchups to the comment
> - Merge branch 'master' into JDK-8261495-shenandoah-updaterefs-memord
> - Use release only
> - Do acq_rel instead
> - 8261495: Shenandoah: reconsider update references memory ordering

Not yet, bot. Still waiting.

-------------

PR: https://git.openjdk.java.net/jdk/pull/2498


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic