aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authortschatzl <none@none>2014-03-24 15:30:36 +0100
committertschatzl <none@none>2014-03-24 15:30:36 +0100
commit685b51e8467cfd45ab4711d7863ec54f0593b464 (patch)
tree3c75150d1c6518ca1027e7761b921a3ee5508a50 /test
parente87d39a03955249a36f2246b838406c083946b85 (diff)
8027295: Free CSet takes ~50% of young pause time
Summary: Improve fast card cache iteration and avoid taking locks when freeing the collection set. Reviewed-by: brutisso
Diffstat (limited to 'test')
-rw-r--r--test/gc/g1/TestGCLogMessages.java32
1 files changed, 30 insertions, 2 deletions
diff --git a/test/gc/g1/TestGCLogMessages.java b/test/gc/g1/TestGCLogMessages.java
index 535399795..2e7bfaba0 100644
--- a/test/gc/g1/TestGCLogMessages.java
+++ b/test/gc/g1/TestGCLogMessages.java
@@ -23,7 +23,7 @@
/*
* @test TestPrintGCDetails
- * @bug 8035406
+ * @bug 8035406 8027295
* @summary Ensure that the PrintGCDetails output for a minor GC with G1
* includes the expected necessary messages.
* @key gc
@@ -38,13 +38,41 @@ public class TestGCLogMessages {
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
"-Xmx10M",
- "-XX:+PrintGCDetails",
GCTest.class.getName());
OutputAnalyzer output = new OutputAnalyzer(pb.start());
+ output.shouldNotContain("[Code Root Purge");
+ output.shouldNotContain("[Young Free CSet");
+ output.shouldNotContain("[Non-Young Free CSet");
+ output.shouldHaveExitValue(0);
+
+ pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
+ "-Xmx10M",
+ "-XX:+PrintGCDetails",
+ GCTest.class.getName());
+
+ output = new OutputAnalyzer(pb.start());
+
+ output.shouldContain("[Code Root Purge");
+ output.shouldNotContain("[Young Free CSet");
+ output.shouldNotContain("[Non-Young Free CSet");
+ output.shouldHaveExitValue(0);
+
+ pb = ProcessTools.createJavaProcessBuilder("-XX:+UseG1GC",
+ "-Xmx10M",
+ "-XX:+PrintGCDetails",
+ "-XX:+UnlockExperimentalVMOptions",
+ "-XX:G1LogLevel=finest",
+ GCTest.class.getName());
+
+ output = new OutputAnalyzer(pb.start());
+
output.shouldContain("[Code Root Purge");
+ output.shouldContain("[Young Free CSet");
+ output.shouldContain("[Non-Young Free CSet");
output.shouldHaveExitValue(0);
+
}
static class GCTest {