RFR 8232747: Shenandoah: Concurrent GC should deactivate SATB before processing weak roots

Aleksey Shipilev shade at redhat.com
Tue Oct 22 14:46:17 UTC 2019


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())

*) You tested hotspot_gc_shenandoah to verify that adding parallel_cleaning call in mark-compact
phase1 is safe, right?

Otherwise looks good.

-- 
Thanks,
-Aleksey




More information about the hotspot-gc-dev mailing list