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

William Kemper wkemper at openjdk.org
Tue Feb 3 18:52:12 UTC 2026


On Tue, 3 Feb 2026 18:05:20 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> So that happens when region r is first put into action (having been initially empty).  When we promote regions in place, it looks to me like we (currently) dirty up to top_before_promote, but we don't clean from top to end.  Is this a bug?
>
> (I guess the bug would be "harmless", in that it might result in some rescan of data that is not really dirty.)

> When we promote regions in place, it looks to me like we (currently) dirty up to top_before_promote, but we don't clean from top to end. 

It could be? You are worried about invalid/stale object start registrations for the memory between `_top_before_promote` and `_end`? To me, it makes more intuitive sense to clear cards when a region is recycled. This would cover the case when a young region becomes old by way of in-place-promotions. What I think you're describing might not be harmless, it could cause invalid object registrations if the in-place-promoted region is used for subsequent evacuations to old. It could be rare because I think, generally, in-place-promoted regions have `_top == _end`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29511#discussion_r2760519944


More information about the shenandoah-dev mailing list