RFR: Full region promotion

William Kemper wkemper at openjdk.java.net
Mon Oct 4 18:31:34 UTC 2021


On Wed, 29 Sep 2021 16:54:46 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

> Prior to this patch, full-region-promotion occurred during the final-evacuation safepoint.  When heap regions are very large (e.g. 16 MB) and a large number of heap regions need to be promoted, this was measured to require over 500 ms in certain scenarios.  Another disadvantage of the prior implementation is that entire heap regions are promoted as-is without any compaction.  A problem with this is that all fragments of garbage within the young-region are promoted into old-gen, where the target heap-region utilization is generally much higher than heap-utilization target within young-gen memory.  Once promoted, it is much more costly to compact this memory because an old-gen collection is much more expensive than a young-gen collection.
> 
> This patch moves region promotion out of the safepoint.  Regions that have reached the tenure age are biased for inclusion within the collection set and are processed during concurrent evacuation using the established conventions.  Humongous heap regions are also promoted during concurrent evacuation rather than during the safepoint.

Marked as reviewed by wkemper (Committer).

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

PR: https://git.openjdk.java.net/shenandoah/pull/75


More information about the shenandoah-dev mailing list