RFR 8232747: Shenandoah: Concurrent GC should deactivate SATB before processing weak roots
Zhengyu Gu
zgu at redhat.com
Tue Oct 22 16:00:39 UTC 2019
On 10/22/19 10:46 AM, Aleksey Shipilev wrote:
> On 10/22/19 4:31 PM, Zhengyu Gu wrote:
>> Updated: http://cr.openjdk.java.net/~zgu/JDK-8232747/webrev.01/index.html
>
> Right. Looks much better. Still, a few nits:
>
> *) We don't need to assert these anymore (we never do in other places)
>
> 1481 assert(is_concurrent_mark_in_progress(), "How else could we get here?");
> ...
> 1585 assert(is_concurrent_mark_in_progress(), "How else could we get here?");
>
> *) Newline between lines here, also captialize "Marking..."
>
> 1479 concurrent_mark()->finish_mark_from_roots(/* full_gc = */ false);
> 1480 // marking is completed, deactivate SATB barrier
>
> *) This is still awkwardly worded, that's my fault. Let's do this:
>
> concurrent_mark()->cancel();
> assert(is_concurrent_mark_in_progress(), "How else could we get here?");
> set_concurrent_mark_in_progress(false);
>
> // If this cycle was updating references, we need to keep the has_forwarded_objects
> // flag on, for subsequent phases to deal with it.
>
> if (process_references())
All fixed and pushed.
>
> *) You tested hotspot_gc_shenandoah to verify that adding parallel_cleaning call in mark-compact
> phase1 is safe, right?
Of course. And reran the tests after every iteration.
Thanks,
-Zhengyu
>
> Otherwise looks good.
>
More information about the hotspot-gc-dev
mailing list