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