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