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