[15] RFR 8242643: Shenandoah: split concurrent weak and strong root processing
Zhengyu Gu
zgu at redhat.com
Tue Apr 14 19:41:27 UTC 2020
On 4/14/20 2:10 PM, Aleksey Shipilev wrote:
> 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
>
Fixed
> *) 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.
Right.
>
> *) 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?
Let's set concurrent_strong_in_progress conditionally, so it does not
leak in case of !is_evacuation_in_progress.
Update: http://cr.openjdk.java.net/~zgu/JDK-8242643/webrev.01/index.html
Test in progress.
Thanks,
-Zhengyu
>
> 345 // Processing weak roots
> 346 heap->entry_weak_roots();
> 347
> 348 // Processing strong
> 349 heap->entry_strong_roots();
> 350
>
>
More information about the shenandoah-dev
mailing list