RFR: Claim ballot before single-threaded sync roots processing

Aleksey Shipilev shade at redhat.com
Mon Nov 13 20:21:50 UTC 2017


On 11/13/2017 09:17 PM, Roman Kennke wrote:
> This is the cause for the is_marked_complete() assert that we've observed coming out of mark-compact
> a couple of times:
> 
> in ShenandoahRootProcessor, we don't claim the ballot before doing single-threaded sync root
> processing. Multiple threads are going into global sync roots scanning, the first one correctly
> updates the references, all others will write trash to it. This only happens when threads exit (the
> global list is only used for moribund threads).
> 
> http://cr.openjdk.java.net/~rkennke/fixsyncroots/webrev.00/

Looks good. Even if that does not fix the bug, it is a good performance optimization anyhow.

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list