[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