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:24:11 UTC 2016


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.

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