RFR: 8261838: Shenandoah: reconsider heap region iterators memory ordering

Aleksey Shipilev shade at openjdk.java.net
Tue Feb 16 19:19:00 UTC 2021


We use CASes to distributed workers between regions. 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 region distribution code, and "relaxed" is enough, since we don't piggyback memory ordering on these.

This also calls for some refactoring in the code itself.

Additional testing:
 - [x] `hotspot_gc_shenandoah`
 - [ ] Ad-hoc performance runs

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

Commit messages:
 - 8261838: Shenandoah: reconsider heap region iterators memory ordering

Changes: https://git.openjdk.java.net/jdk/pull/2593/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2593&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8261838
  Stats: 24 lines in 4 files changed: 2 ins; 3 del; 19 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2593.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2593/head:pull/2593

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



More information about the hotspot-gc-dev mailing list