Integrated: 8280087: G1: Handle out-of-mark stack situations during reference processing more gracefully

Ivan Walulya iwalulya at openjdk.org
Mon Dec 18 09:46:57 UTC 2023


On Tue, 5 Dec 2023 17:40:11 GMT, Ivan Walulya <iwalulya at openjdk.org> wrote:

> Hi all,
> 
> Please review this change to modify how we grow the global marking stack used by Concurrent Marking. This patch allows for growing the marking stack without the need to copy over elements. Consequently, we can grow the marking stack even during the reference processing phase without the need to restart the marking cycle.
> 
> This mainly addresses the issue where object marking work created during reference processing may overflow the global marking stack. Currently G1 just bails out with a fatal error  as expanding the marking stack would require a restart which is not valid during the reference processing phase.
> 
> We have decided to maintain the restart concurrent marking when the global mark stack overflows during the marking phase of the concurrent cycle as this offers better memory utilisation.
> 
> Testing: Tier 1-5.

This pull request has now been integrated.

Changeset: f696796e
Author:    Ivan Walulya <iwalulya at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/f696796e888d62535e6c864ce6fdf912eef0c3ed
Stats:     360 lines in 5 files changed: 270 ins; 45 del; 45 mod

8280087: G1: Handle out-of-mark stack situations during reference processing more gracefully

Reviewed-by: tschatzl, ayang

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

PR: https://git.openjdk.org/jdk/pull/16979


More information about the hotspot-gc-dev mailing list