[15] RFR 8242643: Shenandoah: split concurrent weak and strong root processing

Aleksey Shipilev shade at redhat.com
Tue Apr 14 18:10:56 UTC 2020


On 4/14/20 8:00 PM, Zhengyu Gu wrote:
> Let's split concurrent root phase into concurrent weak root and 
> concurrent strong root phases.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8242643
> Webrev: http://cr.openjdk.java.net/~zgu/JDK-8242643/webrev.00/index.html

*) shenandoahHeap.cpp: can we label them "Concurrent weak roots" and "Concurrent strong roots"? At
very least drop the underscore. "processing" feels redundant.

2810   static const char* msg = "Concurrent weak_roots processing";
...
2825   static const char* msg = "Concurrent strong roots processing";

*) shenandoahHeap.cpp, excess newline:

2838
2839

*) shenandoahHeap.cpp: I suggest we rename the flags to is_strong_roots_in_progress and
is_weak_roots_in_progress. It would underline they are siblings, not parent-child.

*) shenandoahControlThread.cpp: I thought one of the points was to allow concurrent cleanup to run
right after weak roots? Since strong roots are only updated-evac'ed, they are not need with shortcut
cycles, so we can move them below under heap->is_evacuation_in_progress block?

 345   // Processing weak roots
 346   heap->entry_weak_roots();
 347
 348   // Processing strong
 349   heap->entry_strong_roots();
 350


-- 
Thanks,
-Aleksey




More information about the hotspot-gc-dev mailing list