[master] RFR: 8346011: [Lilliput] Compact Full-GC Forwarding

Roman Kennke rkennke at openjdk.org
Wed Dec 11 15:51:40 UTC 2024


The current forwarding scheme that is used during full-GC overrides much of the mark-word. This is a problem for current compact headers when the heap is larger than 8TB (in which case we currently disable compact headers altogether) and becomes a much worse issue with 4-byte-compact-headers, because it would override the compressed class-pointer in the upper header bits.

This implementation uses a side-table (currently 1/512th of the heap size) to store part of the target addresses, and 9 bits in the header for the rest of it. For the full description of the algorithm, see top of fullGCForwarding.hpp.

Testing:
 - [x] hotspot_gc
 - [ ] tier1
 - [ ] tier1 +UseSerialGC
 - [ ] tier1 +UseParallelGC
 - [ ] tier1 +UseShenandoahGC

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

Commit messages:
 - 8346011: [Lilliput] Compact Full-GC Forwarding

Changes: https://git.openjdk.org/lilliput/pull/191/files
  Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=191&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8346011
  Stats: 546 lines in 13 files changed: 467 ins; 31 del; 48 mod
  Patch: https://git.openjdk.org/lilliput/pull/191.diff
  Fetch: git fetch https://git.openjdk.org/lilliput.git pull/191/head:pull/191

PR: https://git.openjdk.org/lilliput/pull/191


More information about the lilliput-dev mailing list