-
Enhancement
-
Resolution: Fixed
-
P4
-
8-shenandoah, 11.0.9, 16, 17
-
b04
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8308634 | 17.0.8 | Aleksey Shipilev | P4 | Resolved | Fixed | b04 |
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 "relaxed" 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).
It would not help AArch64 much untilJDK-8261579 actually implements weaker semantics.
This seems to be excessive for Shenandoah update references code, and "relaxed" 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).
It would not help AArch64 much until
- backported by
-
JDK-8308634 Shenandoah: reconsider update references memory ordering
- Resolved
- is blocked by
-
JDK-8261579 AArch64: Support for weaker memory ordering in Atomic
- Resolved
- relates to
-
JDK-8273127 Shenandoah: relax update references memory ordering even more
- Closed
- links to
-
Commit openjdk/jdk17u-dev/6b362e43
-
Commit openjdk/jdk/a96012a7
-
Review openjdk/jdk17u-dev/8
-
Review openjdk/jdk17u/254
-
Review openjdk/jdk/2498
(3 links to)