Merge
This commit is contained in:
commit
071f077080
@ -138,6 +138,41 @@ public enum GC {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
MIXED_GC {
|
||||||
|
@Override
|
||||||
|
public Runnable get() {
|
||||||
|
return () -> {
|
||||||
|
WHITE_BOX.youngGC();
|
||||||
|
Helpers.waitTillCMCFinished(WHITE_BOX, 0);
|
||||||
|
WHITE_BOX.youngGC();
|
||||||
|
Helpers.waitTillCMCFinished(WHITE_BOX, 0);
|
||||||
|
|
||||||
|
WHITE_BOX.g1StartConcMarkCycle();
|
||||||
|
Helpers.waitTillCMCFinished(WHITE_BOX, 0);
|
||||||
|
|
||||||
|
WHITE_BOX.youngGC();
|
||||||
|
Helpers.waitTillCMCFinished(WHITE_BOX, 0);
|
||||||
|
// Provoking Mixed GC
|
||||||
|
WHITE_BOX.youngGC();// second evacuation pause will be mixed
|
||||||
|
Helpers.waitTillCMCFinished(WHITE_BOX, 0);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public Consumer<ReferenceInfo<Object[]>> getChecker() {
|
||||||
|
return getCheckerImpl(true, false, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> shouldContain() {
|
||||||
|
return Arrays.asList(GCTokens.WB_INITIATED_CMC);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> shouldNotContain() {
|
||||||
|
return Arrays.asList(GCTokens.YOUNG_GC);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
FULL_GC_MEMORY_PRESSURE {
|
FULL_GC_MEMORY_PRESSURE {
|
||||||
@Override
|
@Override
|
||||||
public Runnable get() {
|
public Runnable get() {
|
||||||
|
@ -38,6 +38,9 @@ The test checks that after different type of GC unreachable objects behave as ex
|
|||||||
non-humongous and humongous objects are not collected since we make 2 Young GC to promote all
|
non-humongous and humongous objects are not collected since we make 2 Young GC to promote all
|
||||||
weak references to Old Gen.
|
weak references to Old Gen.
|
||||||
|
|
||||||
|
6. Mixed GC - weakly referenced non-humongous and humongous objects are collected, softly referenced non-humongous and
|
||||||
|
humongous objects are not collected.
|
||||||
|
|
||||||
The test gets gc type as a command line argument.
|
The test gets gc type as a command line argument.
|
||||||
Then the test allocates object graph in heap (currently testing scenarios are pre-generated and stored in
|
Then the test allocates object graph in heap (currently testing scenarios are pre-generated and stored in
|
||||||
TestcaseData.getPregeneratedTestcases()) with TestObjectGraphAfterGC::allocateObjectGraph.
|
TestcaseData.getPregeneratedTestcases()) with TestObjectGraphAfterGC::allocateObjectGraph.
|
||||||
|
@ -66,6 +66,12 @@ import java.util.stream.Collectors;
|
|||||||
* sun.hotspot.WhiteBox$WhiteBoxPermission
|
* sun.hotspot.WhiteBox$WhiteBoxPermission
|
||||||
*
|
*
|
||||||
* @run main/othervm -Xms200M -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
|
* @run main/othervm -Xms200M -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
|
||||||
|
* -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=30000 -XX:G1MixedGCLiveThresholdPercent=100 -XX:G1HeapWastePercent=0
|
||||||
|
* -XX:G1HeapRegionSize=1M -Xlog:gc=info:file=TestObjectGraphAfterGC_MIXED_GC.gc.log -XX:MaxTenuringThreshold=1
|
||||||
|
* -XX:G1MixedGCCountTarget=1 -XX:G1OldCSetRegionThresholdPercent=100 -XX:SurvivorRatio=1 -XX:InitiatingHeapOccupancyPercent=0
|
||||||
|
* gc.g1.humongousObjects.objectGraphTest.TestObjectGraphAfterGC MIXED_GC
|
||||||
|
*
|
||||||
|
* @run main/othervm -Xms200M -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -Xbootclasspath/a:.
|
||||||
* -XX:G1HeapRegionSize=1M -Xlog:gc*=debug:file=TestObjectGraphAfterGC_YOUNG_GC.gc.log
|
* -XX:G1HeapRegionSize=1M -Xlog:gc*=debug:file=TestObjectGraphAfterGC_YOUNG_GC.gc.log
|
||||||
* gc.g1.humongousObjects.objectGraphTest.TestObjectGraphAfterGC YOUNG_GC
|
* gc.g1.humongousObjects.objectGraphTest.TestObjectGraphAfterGC YOUNG_GC
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user