RFR: 8154096: Extend WhiteBox API with methods which retrieve from VM information about available GC
Kirill Zhaldybin
kirill.zhaldybin at oracle.com
Fri Apr 22 14:56:47 UTC 2016
Dmitry,
On 22.04.2016 17:39, Dmitry Fazunenko wrote:
> Hi Kirill,
>
> thanks for looking at the code.
>
> On 22.04.2016 17:24, Kirill Zhaldybin wrote:
>> Dmitry,
>>
>> http://cr.openjdk.java.net/~dfazunen/8154096/webrev.00/test/test/lib/sun/hotspot/WhiteBox.java.sdiff.html
>>
>>
>> 157 // GC
>> 158 /**
>> 159 * @returns true if GC was selected by ergonomic
>> 160 */
>> 161 public boolean gcSelectedByErgo() {
>> 162 if (getSupportedGC().size() < 2) {
>> 163 return false; // nothing to choose from
>> 164 } else {
>> 165 return gcSelectedByErgo0();
>> 166 }
>> 167 }
>>
>>
>> If only one GC is supported why it cannot be selected by ergonomics?
>> My understanding that if jvm is started without gc flag gc is selected
>> by ergonomics even if there is only one supported gc.
>
> This API will be needed to set @requires properties. If an XXX gc is
> selected by ergo it means it's not specified explicitly by
> -XX:+UseXXXGC, it means -XX:+UseYYYGC could be given without flag
> conflict. If an XXX is the only one GC it could be treated as if XXX
> selected by flag, and no other collectors are allowed.
Thank you for detailed explanation.
Would you mind to add it as a comment to code?
Otherwise looks good.
Regards, Kirill
>
> Thanks,
> Dima
>
>
>
>>
>> Thank you.
>>
>> Regards, Kirill
>>
>> On 13.04.2016 17:54, Dmitry Fazunenko wrote:
>>> Hello,
>>>
>>> I'm looking for a couple of reviews of the change extending the WhiteBox
>>> API to retrieve information about
>>> supported collectors and how the collector was selected.
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8154096
>>> http://cr.openjdk.java.net/~dfazunen/8154096/webrev.00/
>>>
>>> This change is required to improve work of the jtreg @requires. Now
>>> jtreg sets vm.gc property
>>> based on the given flags (matching VM options for -XX:+Use???GC
>>> pattern). The extended WhitBox API
>>> will allow us to set properties like:
>>> vm.supportsSerialGC
>>> vm.supportsParallelGC
>>> vm.supportsConcMarkSweeGC
>>> vm.supportsG1GC
>>>
>>> And use in test more reliable expression:
>>> @requires vm.supportsG1GC
>>> instead of
>>> @requires vm.gc == null | vm.gc == "G1"
>>>
>>> The following CRs are blocked by this RFE.
>>> JDK-8151283 <https://bugs.openjdk.java.net/browse/JDK-8151283>:
>>> Implement setting jtreg @requires property vm.isG1Supported.
>>> JDK-8153758 <https://bugs.openjdk.java.net/browse/JDK-8153758> :
>>> @requires should use more accurate GC type parsing.
>>>
>>> Tested locally.
>>>
>>> Thanks,
>>> Dima
>>
>
More information about the hotspot-gc-dev
mailing list