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