RFR: In update-refs, update all code-roots when in degen-gc

Aleksey Shipilev shade at redhat.com
Wed Sep 12 10:42:36 UTC 2018


On 09/12/2018 12:38 PM, Roman Kennke wrote:
> diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
> b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
> --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
> +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
> @@ -2352,7 +2352,9 @@
>    }
>    assert(!cancelled_gc(), "Should have been done right before");
> 
> -
> concurrentMark()->update_roots(ShenandoahPhaseTimings::final_update_refs_roots);
> +  concurrentMark()->update_roots(is_degenerated_gc_in_progress() ?
> +                                 ShenandoahPhaseTimings::full_gc_roots:
> +

This is awkward: degenerated GC is not full GC. It seems better to introduce
ShenandoahPhaseTimings::degenerated_gc_roots and handle it in update_roots.

-Aleksey



More information about the shenandoah-dev mailing list