RFR: Concurrent partial should fix up roots only on cancel
Zhengyu Gu
zgu at redhat.com
Tue Oct 10 13:30:51 UTC 2017
Good to me.
-Zhengyu
On 10/10/2017 09:04 AM, Aleksey Shipilev wrote:
> http://cr.openjdk.java.net/~shade/shenandoah/concpartial-fixroots-cancel/webrev.01/
>
> Obvious when you stare into assert like:
>
> # assert(cancelled_concgc()) failed: Only after concurrent cycle failed
>
> ...because the condition in final_partial_collection is cunning:
>
> 476 if (_has_work && ! _heap->cancelled_concgc()) {
>
> ...can call into "else" branch, and thus call heap->fixup_roots() without cancelled GC, when
> _has_work=false. This will fail the assert inside fixup_roots(). We should just do that on
> cancellation path only.
>
> Testing: hotspot_gc_shenandoah
>
> Thanks,
> -Aleksey
>
More information about the shenandoah-dev
mailing list