RFR(s): 8152422: Optimize GC JPRT test set

Dmitry Fazunenko dmitry.fazunenko at oracle.com
Wed Mar 23 17:28:25 UTC 2016


Hello,

may I have a couple of reviews for a quite trivial fix, which splits up 
the hotspot_gc jtreg group:

http://cr.openjdk.java.net/~dfazunen/8152422/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8152422

The purpose of the split is to parallelize the execution of GC tests in 
JPRT.
Running the tests located under the gc/g1 folder takes approximately the 
same amount of time as running other tests.

To reduce the execution time (for ~20%) I propose to remove a couple of 
slow tests from JPRT run:

38,52 : gc/cms/TestMBeanCMS.java (former name 
test/gc/6581734/Test6581734.java)
    CMS is updating vary rare now, so it's very unlikely to break the 
area under this test

18,05 : 
gc/survivorAlignment/TestPromotionFromSurvivorToTenuredAfterMinorGC.java
    There will remain  3 very similar tests for survivor alignment
          5,38 : gc/survivorAlignment/TestPromotionFromEdenToTenured.java
          6,47 : gc/survivorAlignment/TestAllocationInEden.java
          6,78 : 
gc/survivorAlignment/TestPromotionFromSurvivorToTenuredAfterFullGC.java
     so dropping this test will not create a gap in testing.

I also restored test which were excluded from JPRT execution a year ago:
    90,66 : gc/g1/TestGreyReclaimedHumongousObjects.java
   the test is the slowest one, but after the split it fits the budget.

If someone has objections on adding/removing JPRT tests, please speak up.

Thanks,
Dima

PS:
The new statistics (taken from 
linux_i586_3.8-fastdebug-c1-hotspot_gc_*.log)  now looks like:
*:hotspot_gc_1**
*       0,12 : gc/g1/TestShrinkAuxiliaryData25.java
        0,14 : gc/g1/TestShrinkAuxiliaryData05.java
        0,21 : gc/g1/TestShrinkAuxiliaryData10.java
        0,21 : gc/g1/TestShrinkAuxiliaryData15.java
        0,23 : gc/g1/TestShrinkAuxiliaryData30.java
        0,28 : gc/g1/TestShrinkToOneRegion.java
        0,31 : gc/g1/TestStringSymbolTableStats.java
        0,38 : gc/g1/TestRegionAlignment.java
        0,43 : gc/g1/TestStringDeduplicationInterned.java
        0,45 : gc/g1/TestHumongousAllocInitialMark.java
        0,54 : gc/g1/TestShrinkAuxiliaryData20.java
        0,55 : gc/g1/TestRegionLivenessPrint.java
        0,63 : gc/g1/TestNoEagerReclaimOfHumongousRegions.java
        0,64 : gc/g1/TestHumongousAllocNearlyFullRegion.java
        0,67 : gc/g1/TestRemsetLoggingPerRegion.java
        0,68 : gc/g1/humongousObjects/TestObjectCollected.java
        0,77 : gc/g1/TestStringDeduplicationFullGC.java
        0,80 : gc/g1/Test2GbHeap.java
        0,82 : gc/g1/TestPLABOutput.java
        0,86 : gc/g1/TestPrintRegionRememberedSetInfo.java
        0,93 : gc/g1/TestStringDeduplicationTableResize.java
        0,94 : gc/g1/TestHumongousShrinkHeap.java
        0,95 : gc/g1/humongousObjects/TestHumongousMovement.java
        1,00 : gc/g1/TestShrinkAuxiliaryData00.java
        1,02 : gc/g1/TestStringDeduplicationTableRehash.java
        1,02 : gc/g1/TestStringDeduplicationYoungGC.java
        1,05 : gc/g1/TestRemsetLoggingThreads.java
        1,17 : gc/g1/TestShrinkDefragmentedHeap.java
        1,37 : gc/g1/TestStringDeduplicationPrintOptions.java
        1,48 : gc/g1/TestGCLogMessages.java
        1,94 : gc/g1/TestStringDeduplicationAgeThreshold.java
        2,21 : gc/g1/TestPLABSizeBounds.java
        2,36 : gc/g1/TestLargePageUseForAuxMemory.java
        2,72 : gc/g1/TestEagerReclaimHumongousRegionsWithRefs.java
        2,85 : gc/g1/TestEagerReclaimHumongousRegions.java
        2,87 : gc/g1/TestG1TraceEagerReclaimHumongousObjects.java
        2,88 : gc/g1/TestRemsetLogging.java
        3,57 : gc/g1/plab/TestPLABResize.java
        8,26 : gc/g1/humongousObjects/TestHeapCounters.java
        8,72 : gc/g1/humongousObjects/TestHumongousThreshold.java
       10,95 : gc/g1/TestHumongousCodeCacheRoots.java
       14,49 : gc/g1/plab/TestPLABPromotion.java
       52,17 : gc/g1/TestEagerReclaimHumongousRegionsClearMarkBits.java
       59,11 : gc/g1/humongousObjects/TestHumongousNonArrayAllocation.java
       90,66 : gc/g1/TestGreyReclaimedHumongousObjects.java
SUMMARY:
    Totat tests: 45
    Totat time: 4m 46s

*:hotspot_gc_2**
*       0,08 : gc/arguments/TestCompressedClassFlags.java
        0,09 : gc/startup_warnings/TestDefNewCMS.java
        0,20 : gc/startup_warnings/TestParNewSerialOld.java
        0,21 : gc/arguments/TestUseNUMAInterleaving.java
        0,28 : gc/startup_warnings/TestParallelScavengeSerialOld.java
        0,28 : gc/startup_warnings/TestParallelGC.java
        0,29 : gc/startup_warnings/TestParNewCMS.java
        0,30 : gc/logging/TestPrintReferences.java
        0,30 : gc/startup_warnings/TestG1.java
        0,30 : gc/cms/TestCMSScavengeBeforeRemark.java
        0,31 : gc/TestVerifyDuringStartup.java
        0,32 : gc/startup_warnings/TestSerialGC.java
        0,33 : gc/TestVerifySubSet.java
        0,37 : gc/TestNUMAPageSize.java
        0,37 : sanity/ExecuteInternalVMTests.java
        0,37 : gc/metaspace/TestMetaspaceInitialization.java
        0,41 : gc/whitebox/TestWBGC.java
        0,47 : gc/arguments/TestSelectDefaultGC.java
        0,47 : gc/TestVerifySilently.java
        0,50 : gc/arguments/TestUnrecognizedVMOptionsHandling.java
        0,51 : gc/startup_warnings/TestCMS.java
        0,53 : gc/arguments/TestG1ConcMarkStepDurationMillis.java
        0,53 : gc/arguments/TestNewSizeThreadIncrease.java
        0,60 : gc/arguments/TestG1ConcRefinementThreads.java
        0,67 : gc/arguments/TestG1HeapRegionSize.java
        0,77 : gc/arguments/TestArrayAllocatorMallocLimit.java
        0,80 : gc/class_unloading/TestG1ClassUnloadingHWM.java
        0,80 : gc/TestFullGCCount.java
        0,80 : gc/arguments/TestG1PercentageOptions.java
        0,89 : gc/arguments/TestHeapFreeRatio.java
        0,94 : gc/parallel/AdaptiveGCBoundary.java
        0,97 : gc/arguments/TestSurvivorAlignmentInBytesOption.java
        0,97 : gc/logging/TestGCId.java
        1,01 : gc/logging/TestDeprecatedPrintFlags.java
        1,03 : gc/TestCardTablePageCommits.java
        1,08 : gc/arguments/TestInitialTenuringThreshold.java
        1,10 : gc/metaspace/TestPerfCountersAndMemoryPools.java
        1,21 : gc/metaspace/TestMetaspaceSizeFlags.java
        1,26 : gc/arguments/TestUseCompressedOopsErgo.java
        1,30 : gc/TestDisableExplicitGC.java
        1,57 : gc/class_unloading/TestCMSClassUnloadingEnabledHWM.java
        1,62 : gc/whitebox/TestConcMarkCycleWB.java
        1,71 : gc/serial/HeapChangeLogging.java
        1,73 : gc/arguments/TestVerifyBeforeAndAfterGCFlags.java
        1,86 : gc/metaspace/TestCapacityUntilGCWrapAround.java
        1,88 : gc/metaspace/TestMetaspaceMemoryPool.java
        1,91 : gc/TestSoftReferencesBehaviorOnOOME.java
        2,06 : gc/TestSmallHeap.java
        2,15 : gc/metaspace/G1AddMetaspaceDependency.java
        2,15 : gc/arguments/TestParallelGCThreads.java
        2,16 : gc/arguments/TestAlignmentToUseLargePages.java
        2,18 : gc/arguments/TestDynMinHeapFreeRatio.java
        2,18 : gc/TestSystemGC.java
        2,35 : gc/arguments/TestDynMaxHeapFreeRatio.java
        2,36 : gc/parallel/TestPrintGCDetailsVerbose.java
        2,38 : gc/ergonomics/TestDynamicNumberOfGCThreads.java
        2,40 : gc/TestObjectAlignment.java
        2,53 : gc/parallel/TestDynShrinkHeap.java
        2,56 : gc/cms/GuardShrinkWarning.java
        2,59 : gc/arguments/TestSerialHeapSizeFlags.java
        2,59 : gc/arguments/TestG1HeapSizeFlags.java
        2,64 : gc/arguments/TestNewRatioFlag.java
        2,64 : gc/arguments/TestParallelHeapSizeFlags.java
        2,77 : gc/cms/TestBubbleUpRef.java
        2,78 : gc/arguments/TestCMSHeapSizeFlags.java
        3,60 : gc/arguments/TestObjectTenuringFlags.java
        4,34 : gc/survivorAlignment/TestPromotionFromEdenToTenured.java
        4,57 : gc/arguments/TestMinAndInitialSurvivorRatioFlags.java
        4,64 : gc/survivorAlignment/TestAllocationInEden.java
        4,84 : gc/TestBigObj.java
        5,19 : gc/arguments/TestNewSizeFlags.java
        5,19 : gc/arguments/TestMinInitialErgonomics.java
        6,18 : 
gc/survivorAlignment/TestPromotionFromSurvivorToTenuredAfterFullGC.java
        6,63 : gc/arguments/TestTargetSurvivorRatioFlag.java
        6,63 : gc/CondCardMark/Basic.java
        7,15 : gc/arguments/TestMaxNewSize.java
        7,63 : gc/arguments/TestSurvivorRatioFlag.java
       10,69 : gc/metaspace/TestMetaspacePerfCounters.java
       14,45 : gc/cms/DisableResizePLAB.java
       27,59 : gc/arguments/TestShrinkHeapInSteps.java
       40,39 : gc/arguments/TestMaxMinHeapFreeRatioFlags.java
SUMMARY:
    Totat tests: 81
    Totat time: 3m 59s

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20160323/93f38f2e/attachment.html>


More information about the hotspot-gc-dev mailing list