RFR: Make degenerated update-refs use region-set cursor to hand over work

Aleksey Shipilev shade at redhat.com
Thu Dec 14 18:06:59 UTC 2017


http://cr.openjdk.java.net/~shade/shenandoah/ur-degen-cursor/webrev.01/

This is based on previous RFR that cleans up operations. For Degenerate GC to work, we want to drop
cancellation flag right away, and do init-update-refs, followed by final-update-refs to finish the
update refs work. But, final-update-refs would not finish work when cancellation is cleared.

Since work handover is tracked by regions cursor anyway, why don't we use that to signal available
work? This also handles the case where cancellation is called when all threads have processed all
regions during conc-update-refs, and reacted on cancellation at the end of the phase. Current code
would make a futile attempt to whip up workers during final-update-refs, when we know there is no
work left.

Testing: hotspot_gc_shenandoah

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list