RFR: 8214484: ZGC: Exclude SA tests ClhsdbJhisto and TestHeapDumpFor*

Per Liden per.liden at oracle.com
Thu Nov 29 16:26:04 UTC 2018


On 11/29/18 4:48 PM, Aleksey Shipilev wrote:
> On 11/29/18 4:34 PM, Per Liden wrote:
>> On 11/29/18 4:17 PM, Aleksey Shipilev wrote:
>>> On 11/29/18 4:07 PM, Per Liden wrote:
>>>> There's no support for SA heap walking when using ZGC. Hence the tests for this should not execute
>>>> when ZGC is enabled.
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8214484
>>>> Webrev: http://cr.openjdk.java.net/~pliden/8214484/webrev.0
>>> Looks good.
>>> Stylistic: why not "!vm.gc.Z"?
>> That has a slightly different meaning. vm.gc.Z will be true if -XX:+UseZGC is an "acceptable"
>> option. For example, ZGC is supported by the build and no other GC was explicitly chosen. vm.gc will
>> be "Z" if the test was explicitly executed with -XX:+UseZGC.
>> So if we used !vm.gc.Z on a build with ZGC support, then the test would never execute, unless you
>> also explicitly specified what GC to use.
>> Yeah, I it's messy... I hope I got the details right there... ;)
> Mmm. That's not what we see with TestFullGCCount test, for example, which has pre-existing check for
> CMS, and our new check for Shenandoah:
>   * @requires !(vm.gc.ConcMarkSweep & vm.opt.ExplicitGCInvokesConcurrent == true)
>   * @requires !(vm.gc.Shenandoah & vm.opt.ExplicitGCInvokesConcurrent == true)

Those @requires tags look wrong to me. With the above, the test will not 
be executed if you _only_ supply -XX:+ExplicitGCInvokesConcurrent (and 
use the default GC). It will work as intended if you instead use:

  @requires !(vm.gc == "ConcMarkSweep" & vm.opt.ExplicitGCInvokesConcurrent)
  @requires !(vm.gc == "Shenandoah" & vm.opt.ExplicitGCInvokesConcurrent)



> ...and it reacts on runtime options:
>   http://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-November/008457.html
> -Aleksey

More information about the hotspot-gc-dev mailing list