Integrated: Do not abort coalesce and fill during fullgc
Kelvin Nilsen
kdnilsen at openjdk.java.net
Mon Mar 21 20:35:11 UTC 2022
On Mon, 21 Mar 2022 20:12:58 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
> We found that the GC cancellation flag that in some cases causes degenerated GC to upgrade to full GC remains set throughout the full GC effort. In fact, some of the code within full GC checks this flag to determine if it was upgraded from degenerated GC. We also discovered that when the cancellation flag is set, the coalesce-and-fill effort that is required for pinned regions does not run to completion. This results in crashes during subsequent remembered set scans.
>
> This fix uses a new service (ShenandoahHeapRegion::oop_fill_and_coalesce_wo_cancel()) to process pinned regions. This service always runs to completion, ignoring the status of the GC cancellation flag.
This pull request has now been integrated.
Changeset: 71fe3e54
Author: Kelvin Nilsen <kdnilsen at openjdk.org>
URL: https://git.openjdk.java.net/shenandoah/commit/71fe3e547c9da1ca695fb405f7b2b034548f41cc
Stats: 46 lines in 3 files changed: 45 ins; 0 del; 1 mod
Do not abort coalesce and fill during fullgc
Reviewed-by: wkemper
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/126
More information about the shenandoah-dev
mailing list