RFR: 8376839: GenShen: Improve performance of evacuations into the old generation [v2]
William Kemper
wkemper at openjdk.org
Wed Feb 4 00:59:55 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 incrementally with six additional commits since the last revision:
- 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
- Record top at evac start when in place promotion completes
- Use better names for things
- Record top at evac start when preparing for evacuation
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/29511/files
- new: https://git.openjdk.org/jdk/pull/29511/files/d1456700..08bfab8b
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=29511&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=29511&range=00-01
Stats: 41 lines in 8 files changed: 29 ins; 2 del; 10 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 shenandoah-dev
mailing list