RFR: 8141278: New tests for PLAB testing
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?
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
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