RFR: Skip pre-evac verification and pacing on shortcut cycle path

Zhengyu Gu zgu at redhat.com
Mon Oct 22 13:44:29 UTC 2018



On 10/22/2018 09:37 AM, Aleksey Shipilev wrote:
> On 10/22/2018 03:32 PM, Zhengyu Gu wrote:
>> I think we also need "if (VerifyAfterGC) Universe::verify()" after trash_cset_regions() in
>> op_final_mark(), if update_ref is piggybacked to marking cycle, where is equivalent to
>> op_final_updateref with separate ref-update cycle, no?
> 
> No, we do not need anything additional after trash_cset_regions().
> 
> We need to do VerifyAfterGC once per final op_*, which is what would happen if cycle shortcuts after
> CM in op_final_mark(). If it is not shortcutted after mark, it will continue the cycle, and
> VerifyAfterGC block would be invoked either in op_final_evac() or op_final_updaterefs().
> 
> See the handy diagram in ShenandoahControlThread::service_concurrent_normal_cycle().
> 
>> And I am still puzzled why op_final_evac() is the last op for a GC cycle, cause refs are not updated.
> 
> CM-with-UR cycle would coalesce reference updates with next mark in that mode. op_final_evac() would
> be the last VMOp in this cycle.

Okay, then.

-Zhengyu

> 
> -Aleksey
> 


More information about the shenandoah-dev mailing list