RFR: 8154096: Extend WhiteBox API with methods which retrieve from VM information about available GC
Dmitry Fazunenko
dmitry.fazunenko at oracle.com
Fri Apr 22 15:18:11 UTC 2016
Kirill,
I will put the following doc on the method:
/** * Checks if the current GC was selected by ergonomic among others. *
Note: if VM supports only one GC this method will always return false. *
@returns true if GC was selected by ergonomic, false if specified by
command line flag. */ public boolean gcSelectedByErgo() {
Thanks,
Dima
On 22.04.2016 17:56, Kirill Zhaldybin wrote:
> 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