Integrated: Mixed evacuation
Kelvin Nilsen
kdnilsen at openjdk.java.net
Tue Apr 27 14:07:12 UTC 2021
On Wed, 7 Apr 2021 20:43:31 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
> This code adds to generational Shenandoah the ability to perform concurrent garbage collection of young-gen and old-gen memory. Following completion of an old-gen concurrent marking effort, we select certain old-gen heap regions to serve as candidates for future collection sets. All dead objects within the old-gen heap regions that are not part of this candidate set are coalesced and filled so that remembered-set scanning of these old-gen heap regions will not be confused by "zombie objects" (objects that old-gen has decided are dead, which reside in regions that have not yet been collected). After concurrently coalescing and filling these dead objects, each subsequent young-gen evacuation pass includes a subset of the old-gen candidates until all candidates have been collected. This code passes TIER1 and hotspot-gc-shenandoah jtreg tests without regressions. A new jtreg test has been added to exercise concurrent old/young GC.
This pull request has now been integrated.
Changeset: 68ce49bd
Author: Kelvin Nilsen <kdnilsen at openjdk.org>
Committer: Roman Kennke <rkennke at openjdk.org>
URL: https://git.openjdk.java.net/shenandoah/commit/68ce49bd
Stats: 1846 lines in 31 files changed: 1786 ins; 30 del; 30 mod
Mixed evacuation
Reviewed-by: zgu, rkennke
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/29
More information about the shenandoah-dev
mailing list