RFR: 8261500: Shenandoah: reconsider region live data memory ordering

Aleksey Shipilev shade at openjdk.java.net
Wed Feb 10 17:43:47 UTC 2021


Current Shenandoah region live data tracking uses default CAS updates to achieve atomicity of 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 live data tracking, and "relaxed" could be used instead. The only serious user of that data is collection set chooser, which runs at safepoint and so everything should be quiescent when that happens.

Additional testing:
 - [x] Linux x86_64 hotspot_gc_shenandoah
 - [x] Linux AArch64 hotspot_gc_shenandoah
 - [x] Linux AArch64 tier1 with Shenandoah

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

Commit messages:
 - 8261500: Shenandoah: reconsider region live data memory ordering

Changes: https://git.openjdk.java.net/jdk/pull/2503/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2503&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8261500
  Stats: 3 lines in 1 file changed: 0 ins; 0 del; 3 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2503.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2503/head:pull/2503

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



More information about the hotspot-gc-dev mailing list