annotate test/gc/g1/TestSummarizeRSetStats.java @ 20304:a22acf6d7598

8048112: G1 Full GC needs to support the case when the very first region is not available Summary: Refactor preparation for compaction during Full GC so that it lazily initializes the first compaction point. This also avoids problems later when the first region may not be committed. Also reviewed by K. Barrett. Reviewed-by: brutisso
author tschatzl
date Mon, 21 Jul 2014 10:00:31 +0200
parents c319b188c7b2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
1 /*
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
4 *
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
7 * published by the Free Software Foundation.
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
8 *
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
13 * accompanied this code).
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
14 *
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
18 *
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
21 * questions.
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
22 */
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
23
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
24 /*
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
25 * @test TestSummarizeRSetStats.java
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
26 * @bug 8013895
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
27 * @library /testlibrary
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
28 * @build TestSummarizeRSetStatsTools TestSummarizeRSetStats
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
29 * @summary Verify output of -XX:+G1SummarizeRSetStats
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
30 * @run main TestSummarizeRSetStats
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
31 *
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
32 * Test the output of G1SummarizeRSetStats in conjunction with G1SummarizeRSetStatsPeriod.
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
33 */
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
34
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
35 public class TestSummarizeRSetStats {
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
36
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
37 public static void main(String[] args) throws Exception {
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
38 String result;
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
39
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
40 if (!TestSummarizeRSetStatsTools.testingG1GC()) {
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
41 return;
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
42 }
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
43
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
44 // no remembered set summary output
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
45 result = TestSummarizeRSetStatsTools.runTest(null, 0);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
46 TestSummarizeRSetStatsTools.expectRSetSummaries(result, 0, 0);
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
47
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
48 // no remembered set summary output
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
49 result = TestSummarizeRSetStatsTools.runTest(null, 2);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
50 TestSummarizeRSetStatsTools.expectRSetSummaries(result, 0, 0);
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
51
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
52 // no remembered set summary output
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
53 result = TestSummarizeRSetStatsTools.runTest(new String[] { "-XX:G1SummarizeRSetStatsPeriod=1" }, 3);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
54 TestSummarizeRSetStatsTools.expectRSetSummaries(result, 0, 0);
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
55
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
56 // single remembered set summary output at the end
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
57 result = TestSummarizeRSetStatsTools.runTest(new String[] { "-XX:+G1SummarizeRSetStats" }, 0);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
58 TestSummarizeRSetStatsTools.expectRSetSummaries(result, 1, 0);
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
59
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
60 // single remembered set summary output at the end
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
61 result = TestSummarizeRSetStatsTools.runTest(new String[] { "-XX:+G1SummarizeRSetStats" }, 2);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
62 TestSummarizeRSetStatsTools.expectRSetSummaries(result, 1, 0);
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
63
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
64 // single remembered set summary output
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
65 result = TestSummarizeRSetStatsTools.runTest(new String[] { "-XX:+G1SummarizeRSetStats", "-XX:G1SummarizeRSetStatsPeriod=1" }, 0);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
66 TestSummarizeRSetStatsTools.expectRSetSummaries(result, 1, 0);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
67
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
68 // two times remembered set summary output
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
69 result = TestSummarizeRSetStatsTools.runTest(new String[] { "-XX:+G1SummarizeRSetStats", "-XX:G1SummarizeRSetStatsPeriod=1" }, 1);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
70 TestSummarizeRSetStatsTools.expectRSetSummaries(result, 1, 2);
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
71
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
72 // four times remembered set summary output
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
73 result = TestSummarizeRSetStatsTools.runTest(new String[] { "-XX:+G1SummarizeRSetStats", "-XX:G1SummarizeRSetStatsPeriod=1" }, 3);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
74 TestSummarizeRSetStatsTools.expectRSetSummaries(result, 1, 6);
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
75
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
76 // three times remembered set summary output
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
77 result = TestSummarizeRSetStatsTools.runTest(new String[] { "-XX:+G1SummarizeRSetStats", "-XX:G1SummarizeRSetStatsPeriod=2" }, 3);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
78 TestSummarizeRSetStatsTools.expectRSetSummaries(result, 1, 4);
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
79
12339
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
80 // single remembered set summary output
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
81 result = TestSummarizeRSetStatsTools.runTest(new String[] { "-XX:+G1SummarizeRSetStats", "-XX:G1SummarizeRSetStatsPeriod=100" }, 3);
c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information
tschatzl
parents: 10372
diff changeset
82 TestSummarizeRSetStatsTools.expectRSetSummaries(result, 1, 2);
10372
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
83 }
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
84 }
e72f7eecc96d 8013895: G1: G1SummarizeRSetStats output on Linux needs improvemen
tschatzl
parents:
diff changeset
85