[master] RFR: 8306122: [Lilliput] Refactor full GC forwarding

Roman Kennke rkennke at openjdk.org
Mon Apr 17 19:05:52 UTC 2023


Current implementation of full-GC/sliding-GC forwarding in Lilliput is problematic:
- It's scattered and hardwired all over GC implementations
- It's not switched by UseCompactObjectMonitors
- The serial compaction in G1 is commented-out and not used, not even under -XX:-UseCompactObjectMonitors

This change aims to refactor the forwarding code to address these issues.

It should be functionally equivalent but provides cleaner separation of Lilliput changes. It also cleans up and greatly reduces the upstream diff. The lack of G1 serial compaction with Lilliput enabled will be addressed in a follow-up change.

Testing:
 - [x] hotspot_gc
 - [ ] tier1
 - [ ] tier2

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

Commit messages:
 - Remove forwardingTable* stuff
 - 8306122: [Lilliput] Refactor full GC forwarding
 - Hashtable with Robin Hood hashing
 - Use hashtable
 - Aleksey's review
 - Ensure compaction order in serial GC
 - Track old and young separately in serial GC
 - Fix test
 - Add/fix comments
 - Add GTest
 - ... and 4 more: https://git.openjdk.org/lilliput/compare/88b34412...d2c6bed7

Changes: https://git.openjdk.org/lilliput/pull/85/files
 Webrev: https://webrevs.openjdk.org/?repo=lilliput&pr=85&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8306122
  Stats: 500 lines in 38 files changed: 259 ins; 96 del; 145 mod
  Patch: https://git.openjdk.org/lilliput/pull/85.diff
  Fetch: git fetch https://git.openjdk.org/lilliput.git pull/85/head:pull/85

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


More information about the lilliput-dev mailing list