RFR: Coalesce and fill old, pinned regions after old gen final mark

Kelvin Nilsen kdnilsen at openjdk.org
Tue Jul 5 23:58:14 UTC 2022


On Tue, 5 Jul 2022 16:54:43 GMT, William Kemper <wkemper at openjdk.org> wrote:

> Pinned regions were not being coalesced and filled. This fixes a crash observed with the specjbb 2015 benchmark.

src/hotspot/share/gc/shenandoah/heuristics/shenandoahOldHeuristics.cpp line 217:

> 215:         candidates[cand_idx]._garbage = 0;
> 216:         cand_idx++;
> 217:       }

Even when sorted to the end of the candidate list, it is still possible that the region might be selected as part of a mixed evacuation.  What's to prevent that from happening?  Also, as I contemplate this scenario, what will happen if an old-gen region is not pinned "now", but becomes pinned before it is included into the mixed-evacuation collection set?  Do we handle that case properly?

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

PR: https://git.openjdk.org/shenandoah/pull/149


More information about the shenandoah-dev mailing list