RFR: 8328075: Shenandoah: Avoid forwarding when objects don't move in full-GC
Roman Kennke
rkennke at openjdk.org
Thu Mar 14 08:24:28 UTC 2024
Currently, in Shenandoah's full-GC, we forward all marked objects (and preserve their headers), even if they don't move. This typically happens for a certain amount of 'sediment' that accumulates at the bottom of the heap. This results in wasted CPU cycles and memory accesses and usage. It can easily be avoided by not forwarding objects that don't move.
The fix is to simply not forward objects when they don't move.
Testing:
- [x] hotspot_gc_shenandoah
- [x] tier1 +UseShenandoahGC
-------------
Commit messages:
- 8328107: Shenandoah/C2: TestVerifyLoopOptimizations test failure
Changes: https://git.openjdk.org/jdk/pull/18280/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18280&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8328075
Stats: 5 lines in 1 file changed: 3 ins; 0 del; 2 mod
Patch: https://git.openjdk.org/jdk/pull/18280.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/18280/head:pull/18280
PR: https://git.openjdk.org/jdk/pull/18280
More information about the shenandoah-dev
mailing list