RFR: OWST implementation
Zhengyu Gu
zgu at redhat.com
Wed Nov 2 14:01:22 UTC 2016
Sure.
-Zhengyu
On 11/02/2016 09:55 AM, Roman Kennke wrote:
> Ok great!
>
> Do you think it may be useful to choose one or the other impl based on
> an experimental flag? E.g. -XX:+UseShenandoahOWST ?
>
> Roman
>
> Am Mittwoch, den 02.11.2016, 09:36 -0400 schrieb Zhengyu Gu:
>> Based on Roman's suggestion, subclass ParallelTaskTerminator to avoid
>> invasive changes to ParallelTaskTerminator.
>>
>> Webrev: http://cr.openjdk.java.net/~zgu/owst/webrev.01/index.html
>>
>> Tests: jtreg shenandoah tests, SPECjbb and modified TestGCOld and
>> GCBasher.
>>
>> Thanks,
>>
>> -Zhengyu
>>
>>
>> On 11/01/2016 06:07 PM, Zhengyu Gu wrote:
>>
>>> Yes, it should be a subclass. I will redo the implementation.
>>>
>>> Thanks,
>>>
>>> -Zhengyu
>>>
>>>
>>> On 11/01/2016 05:00 PM, Roman Kennke wrote:
>>>> Hi Zhengyu,
>>>>
>>>> I can't say much about correctness etc of the algorithm. However,
>>>> this
>>>> affects shared code, and other GCs that also use taskqueue. This
>>>> probably means they benefit from improved performance too, but it
>>>> also
>>>> means they'd suffer from any bugs that are in it. I wouldn't want
>>>> to
>>>> make that choice for them. :-) Would it be possible to somehow
>>>> either
>>>> fork taskqueue into a new class, or, if possible, abstract the
>>>> new/changed behaviour? Bonus points for making the impl
>>>> swappable, so
>>>> that Shenandoah could use one or the other taskqueue. This would
>>>> 1.
>>>> make it possible to compare them and 2. smooth the transition,
>>>> i.e.
>>>> make the new queue enabled by an experimental flag, etc. Would
>>>> that be
>>>> possible?
>>>>
>>>> Cheers,
>>>> Roman
>>>>
>>>> Am Dienstag, den 01.11.2016, 11:15 -0400 schrieb Zhengyu Gu:
>>>>> This is the initial implementation of OWST, which is pretty
>>>>> closely
>>>>> following Google's paper.
>>>>>
>>>>> I intend to minimize the changes in the changeset, due to
>>>>> recent
>>>>> regression SPECjbb number.
>>>>> I think there are areas we can improve the implementation. For
>>>>> example, to have spin master give up
>>>>> its role before goes into sleep, so other worker who detects
>>>>> new
>>>>> tasks, may wake up waiting workers, etc.
>>>>>
>>>>>
>>>>> Webrev: http://cr.openjdk.java.net/~zgu/owst/webrev.00/
>>>>>
>>>>> Thanks,
>>>>>
>>>>> -Zhengyu
>>>>>
More information about the shenandoah-dev
mailing list