< prev index next >
test/hotspot/jtreg/serviceability/jvmti/Heap/IterateHeapWithEscapeAnalysisEnabled.java
Print this page
rev 60137 : 8227745: Enable Escape Analysis for Better Performance in the Presence of JVMTI Agents
Reviewed-by: mdoerr, goetz
rev 60138 : 8227745: delta webrev.5 -> webrev.6
@@ -27,11 +27,13 @@
* @summary JVMTI agents can obtain references to not escaping objects using JVMTI Heap functions.
* Therefore optimizations based on escape analysis have to be reverted,
* i.e. scalar replaced objects need to be reallocated on the heap and objects with eliminated locking
* need to be relocked.
* @requires ((vm.compMode == "Xmixed") & vm.compiler2.enabled)
- * @library /test/lib
+ * @library /test/lib /test/hotspot/jtreg
+ * @build sun.hotspot.WhiteBox
+ * @run driver ClassFileInstaller sun.hotspot.WhiteBox
* @compile IterateHeapWithEscapeAnalysisEnabled.java
*
* @comment BLOCK BEGIN EXCLUSIVE TESTCASES {
*
* The following test cases are executed in fresh VMs, because they require that the
@@ -47,46 +49,51 @@
* @run main/othervm/native
* -agentlib:IterateHeapWithEscapeAnalysisEnabled
* -XX:+UnlockDiagnosticVMOptions
* -Xms256m -Xmx256m
* -XX:+PrintCompilation -XX:+PrintInlining
+ * -XX:+WhiteBoxAPI -Xbootclasspath/a:.
* -Xbatch
* -XX:CompileCommand=dontinline,*::dontinline_*
* -XX:+DoEscapeAnalysis
* IterateHeapWithEscapeAnalysisEnabled IterateOverReachableObjects
* @run main/othervm/native
* -agentlib:IterateHeapWithEscapeAnalysisEnabled
* -XX:+UnlockDiagnosticVMOptions
* -Xms256m -Xmx256m
* -XX:+PrintCompilation -XX:+PrintInlining
+ * -XX:+WhiteBoxAPI -Xbootclasspath/a:.
* -Xbatch
* -XX:CompileCommand=dontinline,*::dontinline_*
* -XX:+DoEscapeAnalysis
* IterateHeapWithEscapeAnalysisEnabled IterateOverHeap
* @run main/othervm/native
* -agentlib:IterateHeapWithEscapeAnalysisEnabled
* -XX:+UnlockDiagnosticVMOptions
* -Xms256m -Xmx256m
* -XX:+PrintCompilation -XX:+PrintInlining
+ * -XX:+WhiteBoxAPI -Xbootclasspath/a:.
* -Xbatch
* -XX:CompileCommand=dontinline,*::dontinline_*
* -XX:+DoEscapeAnalysis
* IterateHeapWithEscapeAnalysisEnabled IterateOverInstancesOfClass
* @run main/othervm/native
* -agentlib:IterateHeapWithEscapeAnalysisEnabled
* -XX:+UnlockDiagnosticVMOptions
* -Xms256m -Xmx256m
* -XX:+PrintCompilation -XX:+PrintInlining
+ * -XX:+WhiteBoxAPI -Xbootclasspath/a:.
* -Xbatch
* -XX:CompileCommand=dontinline,*::dontinline_*
* -XX:+DoEscapeAnalysis
* IterateHeapWithEscapeAnalysisEnabled FollowReferences
* @run main/othervm/native
* -agentlib:IterateHeapWithEscapeAnalysisEnabled
* -XX:+UnlockDiagnosticVMOptions
* -Xms256m -Xmx256m
* -XX:+PrintCompilation -XX:+PrintInlining
+ * -XX:+WhiteBoxAPI -Xbootclasspath/a:.
* -Xbatch
* -XX:CompileCommand=dontinline,*::dontinline_*
* -XX:+DoEscapeAnalysis
* IterateHeapWithEscapeAnalysisEnabled IterateThroughHeap
*
@@ -99,42 +106,49 @@
* -XX:+UnlockDiagnosticVMOptions
* -Xms256m -Xmx256m
* -XX:CompileCommand=dontinline,*::dontinline_*
* -XX:+PrintCompilation
* -XX:+PrintInlining
+ * -XX:+WhiteBoxAPI -Xbootclasspath/a:.
* -Xbatch
* -XX:+DoEscapeAnalysis -XX:+EliminateAllocations -XX:+EliminateLocks -XX:+EliminateNestedLocks -XX:+UseBiasedLocking
* IterateHeapWithEscapeAnalysisEnabled
* @run main/othervm/native
* -agentlib:IterateHeapWithEscapeAnalysisEnabled
* -XX:+UnlockDiagnosticVMOptions
* -Xms256m -Xmx256m
* -XX:CompileCommand=dontinline,*::dontinline_*
* -XX:+PrintCompilation
* -XX:+PrintInlining
+ * -XX:+WhiteBoxAPI -Xbootclasspath/a:.
* -Xbatch
* -XX:+DoEscapeAnalysis -XX:-EliminateAllocations -XX:+EliminateLocks -XX:+EliminateNestedLocks -XX:+UseBiasedLocking
* IterateHeapWithEscapeAnalysisEnabled
* @run main/othervm/native
* -agentlib:IterateHeapWithEscapeAnalysisEnabled
* -XX:+UnlockDiagnosticVMOptions
* -Xms256m -Xmx256m
* -XX:CompileCommand=dontinline,*::dontinline_*
* -XX:+PrintCompilation
* -XX:+PrintInlining
+ * -XX:+WhiteBoxAPI -Xbootclasspath/a:.
* -Xbatch
* -XX:-DoEscapeAnalysis -XX:-EliminateAllocations -XX:+EliminateLocks -XX:+EliminateNestedLocks -XX:+UseBiasedLocking
* IterateHeapWithEscapeAnalysisEnabled
*
* @comment } BLOCK END NON EXCLUSIVE TESTCASES
*/
+import compiler.whitebox.CompilerWhiteBoxTest;
import jdk.test.lib.Asserts;
+import sun.hotspot.WhiteBox;
public class IterateHeapWithEscapeAnalysisEnabled {
- public static final int COMPILE_THRESHOLD = 20000;
+ public static final WhiteBox WB = WhiteBox.getWhiteBox();
+
+ public static final int COMPILE_THRESHOLD = CompilerWhiteBoxTest.THRESHOLD;
public static native int jvmtiTagClass(Class<?> cls, long tag);
// Methods to tag or count instances of a given class available in JVMTI
public static enum TaggingAndCountingMethods {
@@ -361,11 +375,12 @@
msgHL(getClass().getName() + ": test if object that may be scalar replaced is found using " + taggingMethod);
msg("The capability can_tag_object is acquired " + (acquireCanTagObjectsCapabilityAfterWarmup ? "AFTER" : "BEFORE")
+ " warmup.");
setUp();
warmUp();
- System.gc(); // get rid of dead instances from previous test cases
+ WB.deflateIdleMonitors();
+ WB.fullGC(); // get rid of dead instances from previous test cases
runTest(taggingMethod);
} catch (Exception e) {
Asserts.fail("Unexpected Exception", e);
}
}
@@ -446,11 +461,12 @@
warmUp();
for (TaggingAndCountingMethods m : TaggingAndCountingMethods.values()) {
msgHL(getClass().getName() + ": Tag and Get of ArgEscapes using " + m.name());
waitingForCheck = false;
checkingNow = false;
- System.gc(); // get rid of dead instances from previous test cases
+ WB.deflateIdleMonitors();
+ WB.fullGC(); // get rid of dead instances from previous test cases
runTest(m);
}
} catch (Exception e) {
Asserts.fail("Unexpected Exception", e);
}
@@ -521,11 +537,12 @@
warmUp();
for (TaggingAndCountingMethods m : TaggingAndCountingMethods.values()) {
msgHL(getClass().getName() + ": Tag and Get of ArgEscapes using " + m.name());
waitingForCheck = false;
checkingNow = false;
- System.gc(); // get rid of dead instances from previous test cases
+ WB.deflateIdleMonitors();
+ WB.fullGC(); // get rid of dead instances from previous test cases
runTest(m);
}
} catch (Exception e) {
Asserts.fail("Unexpected Exception", e);
}
< prev index next >