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