RFR: 8261501: Shenandoah: reconsider heap statistics memory ordering

Aleksey Shipilev shade at openjdk.java.net
Wed Feb 10 16:14:45 UTC 2021


ShenandoahHeap collects heap-wide statistics (used, committed, etc). It does so by atomically updating them with default CASes. Unfortunately, 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 is excessive for statistics gathering, and "relaxed" should be just as good.

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

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

Commit messages:
 - 8261501: Shenandoah: reconsider heap statistics memory ordering

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

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



More information about the hotspot-gc-dev mailing list