RFR(s): 8152422: Optimize GC JPRT test set
Dmitry Fazunenko
dmitry.fazunenko at oracle.com
Thu Mar 24 11:48:05 UTC 2016
Hi Stefan,
Thanks for looking, please find my answers inline.
On 24.03.2016 11:52, Stefan Johansson wrote:
> Hi Dima,
>
> On 2016-03-23 18:28, Dmitry Fazunenko wrote:
>> 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.
>>
> I think the proposed change looks good. Really nice that it was
> possible to do the split by having one group including all G1 tests.
Just for the notice, :hotspot_gc_1 contains not all G1 tests.
# All tests that explicitly set the G1 GC
#
needs_g1gc = \
compiler/regalloc/C1ObjectSpillInLogicOp.java \
gc/TestSmallHeap.java \
gc/TestSystemGC.java \
gc/arguments/TestAlignmentToUseLargePages.java \
gc/arguments/TestG1ConcRefinementThreads.java \
gc/arguments/TestG1HeapRegionSize.java \
gc/arguments/TestG1HeapSizeFlags.java \
gc/arguments/TestG1PercentageOptions.java \
gc/arguments/TestMaxHeapSizeTools.java \
gc/arguments/TestMaxNewSize.java \
gc/arguments/TestParallelGCThreads.java \
gc/arguments/TestUseCompressedOopsErgo.java \
gc/class_unloading/TestG1ClassUnloadingHWM.java \
gc/ergonomics/TestDynamicNumberOfGCThreads.java \
gc/g1/ \
gc/logging/TestGCId.java \
gc/metaspace/G1AddMetaspaceDependency.java \
gc/metaspace/TestMetaspacePerfCounters.java \
gc/startup_warnings/TestG1.java \
gc/whitebox/TestConcMarkCycleWB.java
>
> One improvement I would like, is to leave the group hotspot_gc and
> define it as :hotspot_gc_1 and :hotspot_gc_2. This would be nice when
> running RBT for example.
I was thinking about adding such group, but I came to the conclusion
that such group is not needed. Groups are needed for JPRT only, RBT
users can specify hotspot/test/gc to run all gc tests.
Thanks,
Dima
>
> Thanks,
> Stefan
>
>> 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: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20160324/4419806d/attachment.htm>
More information about the hotspot-gc-dev
mailing list