< prev index next >
test/hotspot/jtreg/gc/shenandoah/oom/TestClassLoaderLeak.java
Print this page
rev 55538 : 8226757: Shenandoah: Make Traversal a separate mode
*** 122,153 ****
}
System.out.println("All good");
return;
}
! String[] heuristics = new String[] {
"adaptive",
"compact",
"static",
! "traversal",
! "aggressive",
! "passive",
};
for (String h : heuristics) {
// Forceful enabling should work
! passWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading");
! passWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloadingWithConcurrentMark");
// Even when concurrent unloading is disabled, Full GC has to recover
! passWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark");
! passWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=0");
! passWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=0");
// Should OOME when unloading forcefully disabled, even if local flags try to enable it back
! failWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading");
! failWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark");
! failWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=1");
! failWith("-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=1");
}
}
}
--- 122,158 ----
}
System.out.println("All good");
return;
}
! String[][][] modeHeuristics = new String[][][] {
! {{"normal"}, {
"adaptive",
"compact",
"static",
! "aggressive"}},
! {{"traversal"}, {"adaptive"}},
! {{"passive"}, {"passive"}}
};
+ for (String[][] mh : modeHeuristics) {
+ String mode = mh[0][0];
+ String[] heuristics = mh[1];
for (String h : heuristics) {
// Forceful enabling should work
! passWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading");
! passWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloadingWithConcurrentMark");
// Even when concurrent unloading is disabled, Full GC has to recover
! passWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark");
! passWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=0");
! passWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:+ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=0");
// Should OOME when unloading forcefully disabled, even if local flags try to enable it back
! failWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading");
! failWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark");
! failWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:+ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=1");
! failWith("-XX:ShenandoahGCMode=" + mode, "-XX:ShenandoahGCHeuristics=" + h, "-XX:-ClassUnloading", "-XX:-ClassUnloadingWithConcurrentMark", "-XX:ShenandoahUnloadClassesFrequency=1");
! }
}
}
}
< prev index next >