RFR: 8376839: GenShen: Improve performance of evacuations into the old generation [v5]
Y. Srinivas Ramakrishna
ysr at openjdk.org
Fri Feb 20 03:17:35 UTC 2026
On Mon, 16 Feb 2026 18:30:44 GMT, William Kemper <wkemper at openjdk.org> wrote:
>> 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
Can you share any pointers to performance improvements noted with specific workloads? May be add them here or in the ticket? Thanks!
-------------
PR Comment: https://git.openjdk.org/jdk/pull/29511#issuecomment-3931362529
More information about the shenandoah-dev
mailing list