RFR: 8273127: Shenandoah: Adopt relaxed order for update oop

Aleksey Shipilev shade at openjdk.java.net
Thu Sep 2 16:40:21 UTC 2021


On Thu, 2 Sep 2021 03:36:05 GMT, Xiaowei Lu <github.com+39413832+weixlu at openjdk.org> wrote:

> It seems `OrderAccess::release` performs better than `acq_rel`.

Interesting result, thanks. I think that's because on current ARM 8.2 `acq_rel` is effectively `seq_cst`, which is stronger than `release`. ARM 8.3 introduces the RCpc atomics that are weaker, but we are not there yet. Anyhow, in #2496, I tried to do the acquire conditionally now, leaving only `release` CAS to hopefully avoid this pitfall.

I also think that PR now subsumes this one: it does conditionally relaxed heap updates, while leaving "release" for self-healing paths that might run concurrently during evacuation. Would you mind testing #2496 instead? Maybe also #2496 + `OrderAccess::release` variant to see if we even need it now performance-wise? If you agree, I would suggest closing this PR and moving the rest of the work under #2496.

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

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



More information about the hotspot-gc-dev mailing list