RFR: 8166790: Add stress test GCBasher

David Holmes david.holmes at oracle.com
Thu Sep 29 08:27:42 UTC 2016



On 29/09/2016 5:52 PM, Erik Helin wrote:
> On 2016-09-29, David Holmes wrote:
>> Hi Erik,
>
> Hi David, thanks for reviewing!
>
>> On 29/09/2016 1:01 AM, Erik Helin wrote:
>>> Hi all,
>>>
>>> this patch adds a new GC stress test called GCBasher. GCBasher builds up
>>> large (well, for some definiton of large) object graphs by figuring out
>>> the relations between classes in the JDK. The test usually stresses the
>>> GC quite a lot, especially when run with a smaller heap.
>>>
>>> The changes in the top-level repository are for JPRT. JPRT will now run
>>> the jtreg test GCBasher instead of the old version.
>>>
>>> Enhancement:
>>> https://bugs.openjdk.java.net/browse/JDK-8166790
>>>
>>> Webrev:
>>> - hotspot: http://cr.openjdk.java.net/~ehelin/8166790/hotspot/00/
>>
>> Can't comment on actual test but placement etc looks fine.
>
> Thanks!
>
>> One query:
>>
>> test/gc/stress/gcbasher/TestGCBasher.java
>>
>> You are running with -server explicitly. Should you not also have @requires
>> vm == server (or whatever the syntax is) as well?
>
> Yes, thanks, I will add that before I push.
>
>>> - top: http://cr.openjdk.java.net/~ehelin/8166790/top/00/
>>
>> Nit: The new end lines like:
>>
>>  337     solaris_sparcv9_5.11-product-c2-runThese8,
>>  345     solaris_x64_5.11-product-c2-runThese8_Xcomp_vm,
>>  370     windows_i586_6.3-product-c2-runThese8_Xcomp_vm,
>>  378     windows_x64_6.3-product-c2-runThese8_Xcomp_vm,
>>
>> should not have the trailing comma.
>>
>> This seems wrong:
>>
>>  443 ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_fast_gc_gcbasher},
>> \
>>  444
>> ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_fast_runtime},
>> \
>>  445 ${my.make.rule.test.targets.hotspot.reg.group:GROUP=hotspot_fast_serviceability},
>> \
>>  446 ${my.make.rule.test.targets.hotspot.reg.group:GROUP=jdk_svc_sanity},
>> \
>>  447   solaris_sparcv9_5.11-product-c2-hotspot_fast_gc_gcbasher,
>> \
>>  448   solaris_x64_5.11-product-c2-hotspot_fast_gc_gcbasher,
>> \
>>  449   linux_i586_3.8-product-c2-hotspot_fast_gc_gcbasher,
>> \
>>  450   linux_x64_3.8-product-c2-hotspot_fast_gc_gcbasher,
>> \
>>  451   macosx_x64_10.9-product-c2-hotspot_fast_gc_gcbasher,
>> \
>>  452   windows_i586_6.3-product-c2-hotspot_fast_gc_gcbasher,
>> \
>>  453   windows_x64_6.3-product-c2-hotspot_fast_gc_gcbasher,
>> \
>>
>> You've added the new tests through a group substitution at line 443, but
>> then have added each platform individually. I don't think 447 - 453 should
>> be there else the test will run twice per platform.
>
> If you look at the current jprt.properties file you will see that
> GCBasher is being run for both product and fastdebug builds for 32 and
> 64 bit Linux, Windows, Mac, Solaris as well as Solaris SPARC. This is
> the behavior we want to match.
>
> Looking at my changes, you can see that the first change to
> my.make.rule.test.targets.hotspot.reg will cause the jtreg version
> of GCBasher to be run for all fastdebug builds for the above platforms.
> This is because my.make.rule.targets.hotspot.reg will expand a jtreg
> group to be to be a target for all fastdebug builds (by making use
> my.make.rule.targets.hotspot.reg.group with a substituion).
>
> Now, the previous paragraph takes care of fastdebug but doesn't run the
> test on product builds. We only want the jtreg version of GCBasher to
> run on the product builds, not all jtreg groups. Hence I added the
> product targets explicitly in my.make.rule.test.targets.hotspot.reg.

Sorry I misread that. I'd be tempted to define a new group mechanism for

my.make.rule.test.targets.hotspot.reg.product.group= \
   solaris_sparcv9_5.11-product-c2-GROUP, \
   ...

and then use that. But I don't insist :)

Thanks,
David

> Thanks,
> Erik
>
>> Thanks,
>> David
>> -----
>>
>>> Testing:
>>> - Running the new jtreg test locally on Linux x86-64:
>>>  $ jtreg -jdk:build/fastdebug/jdk hotspot/test/gc/stress/TestGCBasher.java
>>>
>>>  (can also be run via: $ make test TEST=hotspot_fast_gc_gcbasher)
>>> - JPRT
>>>
>>> Thanks,
>>> Erik
>>>



More information about the build-dev mailing list