RFR: Skip pre-evac verification and pacing on shortcut cycle path
Aleksey Shipilev
shade at redhat.com
Mon Oct 22 13:37:47 UTC 2018
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.
-Aleksey
More information about the shenandoah-dev
mailing list