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

Reply via email to