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 14:39:57 UTC 2016


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.

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