RFR: Utilize parallel workers for GC tasks during safepoints

Zhengyu Gu zgu at redhat.com
Mon Nov 21 12:25:56 UTC 2016


Hi Roman,

Thank you for the reviewing.

Coming out of concurrent phase, all queues should be empty.
So at final mark phase, N par == N queue.

(final_mark_loop(), it actually does not need to claim_next(),
I should convert that to assert(extra_queue->is_empty() ....)


-Zhengyu


On 11/21/2016 05:47 AM, Roman Kennke wrote:
> Hi Zhengyu,
>
> I like it!
>
> For going from N par threads to M conc threads, you let the conc
> threads claim the extra queues. For the other direction (i.e. final-
> mark), are you relying on stealing to see the extra par queues?
> Fine to commit.
>
> /Roman
>
> Am Freitag, den 18.11.2016, 14:27 -0500 schrieb Zhengyu Gu:
>> The change allows Shenandoah GC to utilize parallel GC workers during
>> STW safepoints, without the restriction imposed by the number of
>> concurrent GC threads.
>>
>> The main purpose of the change is to allow us scale up/down GC
>> concurrent and parallel workers independently.
>>
>> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/workers/webrev.00/
>>
>>
>> Tests:
>>
>> - jcstress (fastdebug)
>> - Shenandoah GC test (fastdebug and release)
>> - SPECjbb (fastdebug and release)
>> - SPECjvm (fastdebug)
>>
>>
>> Thanks,
>>
>> -Zhengyu
>>



More information about the shenandoah-dev mailing list