RFR: 8376839: GenShen: Improve performance of evacuations into the old generation [v5]

William Kemper wkemper at openjdk.org
Mon Feb 16 18:30:44 UTC 2026


> When GenShen evacuates an object into the old generation, it also dirties the card for that object and updates the offsets of the first and last object in the card. In many cases, the same card may dirtied repeatedly and the object starts updated unnecessarily. We can reduce the total amount of work by moving these operations into a separate phase of the cycle which allows them to be batched.

William Kemper has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 36 commits:

 - Fix merge error
 - Merge remote-tracking branch 'jdk/master' into more-precise-rset-rebuild
 - Force parallelism for update card table
 - Avoid update call when there is no work to be done
 - Merge branch 'more-precise-rset-rebuild' into dirty-all-the-cards
 - Clear card table for young regions when full gc rebuilds remembered set
 - Dirty all the cards en masse
   
   This might be faster if less precise.
 - Search for interesting pointers in objects that span into the next card
 - Reset card table for old regions when they are recycled
   
   Instead of when they are allocated. This covers the case of in-place-promotions having potentially stale card table entries above top after being promoted.
 - Do not iterate objects on cards that are already dirty
 - ... and 26 more: https://git.openjdk.org/jdk/compare/c7ef631b...f8566321

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

Changes: https://git.openjdk.org/jdk/pull/29511/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29511&range=04
  Stats: 284 lines in 15 files changed: 193 ins; 68 del; 23 mod
  Patch: https://git.openjdk.org/jdk/pull/29511.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29511/head:pull/29511

PR: https://git.openjdk.org/jdk/pull/29511


More information about the hotspot-gc-dev mailing list