RFR: 8141278: New tests for PLAB testing

Michail Chernov michail.chernov at oracle.com
Tue Nov 17 16:28:17 UTC 2015


Could I have a couple of reviews for the new PLAB tests please?

Bug: https://bugs.openjdk.java.net/browse/JDK-8141278
Webrev: http://cr.openjdk.java.net/~mchernov/8141278/webrev.00/

There are two new tests for PLAB.

Test TestPLABNoResize checks how PLAB is used for promotion of objects. 
It starts  the AppPLABFixedSize and inspects GC log details. The 
AppPLABFixedSize tries to fill specified amount of memory with small 
object, initiates young GC twice to promote objects from eden to 
survivor and then from survivor to old gen. TestPLABNoResize has 
different scenarios:
1. Promotion of small objects, which should be promoted using PLAB.
2. Promotion of big objects, which should be promoted by direct allocation.
3. Unreachable objects should not be promoted.

Test TestPLABResize check behaviour of PLAB resizing. Test executes the 
AppPLABResize which tries to do next:
1. Performs some iterations of creating some fixed amount of objects and 
promoting them to survivor. Promotion of fixed amount of objects will 
cause to fixed desired PLAB size.
2. Performs some iterations - creates some amount of object, promotes it 
to survivor, decreases amount of objects. It causes to decreasing of 
desired PLAB size.
3. Performs next iterations which is similar to step 2, but increases 
amount of object to get increasing of desired PLAB size.

Both tests use LogParser to get VM log information.

Issues which were found by these tests:
https://bugs.openjdk.java.net/browse/JDK-8140585 - PLAB statistics are 
flushed too late
https://bugs.openjdk.java.net/browse/JDK-8141141 - Young and Old gen 
PLAB stats are similar in output with -XX:+PrintPLAB
https://bugs.openjdk.java.net/browse/JDK-8139903 - G1EvacStats does not 
split log entries.


More information about the hotspot-gc-dev mailing list