RFR(M) 8222992: Shenandoah: Pre-evacuate all roots

Zhengyu Gu zgu at redhat.com
Wed May 1 14:22:16 UTC 2019



On 5/1/19 6:19 AM, Aleksey Shipilev wrote:
> On 4/30/19 9:51 PM, Zhengyu Gu wrote:
>> Updated webrev: http://cr.openjdk.java.net/~zgu/JDK-8222992/webrev.01/index.html
> 
> Something is wrong with the webrev. The patch has:
> 
> +void ShenandoahVerifier::verify_roots_no_forwarded() {
> +  verify_at_safepoint(
> +          "Roots Have Not Forwarded References",
> +          _verify_forwarded_none,      // no forwarded references
> +          _verify_marked_disable,      // walk only roots
> +          _verify_cset_disable,        // no cset verification
> +          _verify_liveness_disable,    // no reliable liveness data anymore
> +          _verify_regions_notrash,     // trash regions have been recycled already
> +          _verify_gcstate_disable      // no gc state check
> +  );
> +}
> 
> ...yet webrevs has:
> 
>   943 void ShenandoahVerifier::verify_roots_no_forwarded() {
>   944   guarantee(ShenandoahSafepoint::is_at_shenandoah_safepoint(), "only when nothing else happens");
>   945   ShenandoahRootProcessor rp(_heap, 1, ShenandoahPhaseTimings::_num_phases); // no need for stats
>   946   ShenandoahVerifyNoForwared cl;
>   947   rp.process_all_roots_slow(&cl);
>   948 } >
> 
> I think missing roots SRP::process_all_roots_slow require a separate changeset, as it should be
> backported ahead of this change to other releases;
>

Fixed SRP::process_all_roots_slow() in JDK-8223184 and rebased this patch:

Updated webrev: 
http://cr.openjdk.java.net/~zgu/JDK-8222992/webrev.02/index.html

Reran hotspot_gc_shenandoah tests with -XX:+ShenandoahVerify

Thanks,

-Zhengyu



> -Aleksey
> 


More information about the shenandoah-dev mailing list