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