annotate src/share/vm/gc_implementation/g1/g1_globals.hpp @ 807:d44bdab1c03d

6843694: G1: assert(index < _vs.committed_size(),"bad index"), g1BlockOffsetTable.inline.hpp:55 Summary: For heaps larger than 32Gb, the number of heap regions overflows the data type used to hold the region index in the SparsePRT structure. Changed the region indexes, card indexes, and RSet hash table buckets to ints and added some size overflow guarantees. Reviewed-by: ysr, tonyp
author johnc
date Thu, 11 Jun 2009 17:19:33 -0700
parents 315a5d70b295
children df6caf649ff7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
1 /*
579
0fbdb4381b99 6814575: Update copyright year
xdono
parents: 545
diff changeset
2 * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
4 *
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
7 * published by the Free Software Foundation.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
8 *
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
13 * accompanied this code).
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
14 *
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
18 *
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
20 * CA 95054 USA or visit www.sun.com if you need additional information or
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
21 * have any questions.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
22 *
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
23 */
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
24
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
25 //
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
26 // Defines all globals flags used by the garbage-first compiler.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
27 //
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
28
350
d28aa69f0959 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 342
diff changeset
29 #define G1_FLAGS(develop, develop_pd, product, product_pd, diagnostic, experimental, notproduct, manageable, product_rw) \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
30 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
31 product(intx, G1ParallelGCAllocBufferSize, 8*K, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
32 "Size of parallel G1 allocation buffers in to-space.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
33 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
34 product(intx, G1ConfidencePercent, 50, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
35 "Confidence level for MMU/pause predictions") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
36 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
37 develop(intx, G1MarkingOverheadPercent, 0, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
38 "Overhead of concurrent marking") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
39 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
40 develop(bool, G1AccountConcurrentOverhead, false, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
41 "Whether soft real-time compliance in G1 will take into account" \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
42 "concurrent overhead") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
43 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
44 product(intx, G1YoungGenSize, 0, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
45 "Size of the G1 young generation, 0 is the adaptive policy") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
46 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
47 develop(bool, G1Gen, true, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
48 "If true, it will enable the generational G1") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
49 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
50 develop(intx, G1GCPercent, 10, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
51 "The desired percent time spent on GC") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
52 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
53 develop(intx, G1PolicyVerbose, 0, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
54 "The verbosity level on G1 policy decisions") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
55 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
56 develop(bool, G1UseHRIntoRS, true, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
57 "Determines whether the 'advanced' HR Into rem set is used.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
58 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
59 develop(intx, G1MarkingVerboseLevel, 0, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
60 "Level (0-4) of verboseness of the marking code") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
61 \
745
2b6c55e36143 6829013: G1: set the default value of G1VerifyConcMarkPrintRechable to false
tonyp
parents: 677
diff changeset
62 develop(bool, G1VerifyConcMarkPrintReachable, false, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
63 "If conc mark verification fails, print reachable objects") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
64 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
65 develop(bool, G1TraceMarkStackOverflow, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
66 "If true, extra debugging code for CM restart for ovflw.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
67 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
68 develop(intx, G1PausesBtwnConcMark, -1, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
69 "If positive, fixed number of pauses between conc markings") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
70 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
71 diagnostic(bool, G1SummarizeConcurrentMark, false, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
72 "Summarize concurrent mark info") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
73 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
74 diagnostic(bool, G1SummarizeRSetStats, false, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
75 "Summarize remembered set processing info") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
76 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
77 diagnostic(bool, G1SummarizeZFStats, false, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
78 "Summarize zero-filling info") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
79 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
80 develop(bool, G1TraceConcurrentRefinement, false, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
81 "Trace G1 concurrent refinement") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
82 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
83 develop(bool, G1ConcMark, true, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
84 "If true, run concurrent marking for G1") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
85 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
86 product(intx, G1MarkStackSize, 2 * 1024 * 1024, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
87 "Size of the mark stack for concurrent marking.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
88 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
89 product(intx, G1MarkRegionStackSize, 1024 * 1024, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
90 "Size of the region stack for concurrent marking.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
91 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
92 develop(bool, G1ConcRefine, true, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
93 "If true, run concurrent rem set refinement for G1") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
94 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
95 develop(intx, G1ConcRefineTargTraversals, 4, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
96 "Number of concurrent refinement we try to achieve") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
97 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
98 develop(intx, G1ConcRefineInitialDelta, 4, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
99 "Number of heap regions of alloc ahead of starting collection " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
100 "pause to start concurrent refinement (initially)") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
101 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
102 develop(bool, G1SmoothConcRefine, true, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
103 "Attempts to smooth out the overhead of concurrent refinement") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
104 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
105 develop(bool, G1ConcZeroFill, true, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
106 "If true, run concurrent zero-filling thread") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
107 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
108 develop(intx, G1ConcZFMaxRegions, 1, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
109 "Stop zero-filling when # of zf'd regions reaches") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
110 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
111 product(intx, G1SteadyStateUsed, 90, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
112 "If non-0, try to maintain 'used' at this pct (of max)") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
113 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
114 product(intx, G1SteadyStateUsedDelta, 30, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
115 "If G1SteadyStateUsed is non-0, then do pause this number of " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
116 "of percentage points earlier if no marking is in progress.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
117 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
118 develop(bool, G1SATBBarrierPrintNullPreVals, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
119 "If true, count frac of ptr writes with null pre-vals.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
120 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
121 product(intx, G1SATBLogBufferSize, 1*K, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
122 "Number of entries in an SATB log buffer.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
123 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
124 product(intx, G1SATBProcessCompletedThreshold, 20, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
125 "Number of completed buffers that triggers log processing.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
126 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
127 develop(intx, G1ExtraRegionSurvRate, 33, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
128 "If the young survival rate is S, and there's room left in " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
129 "to-space, we will allow regions whose survival rate is up to " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
130 "S + (1 - S)*X, where X is this parameter (as a fraction.)") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
131 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
132 develop(intx, G1InitYoungSurvRatio, 50, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
133 "Expected Survival Rate for newly allocated bytes") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
134 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
135 develop(bool, G1SATBPrintStubs, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
136 "If true, print generated stubs for the SATB barrier") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
137 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
138 product(intx, G1ExpandByPercentOfAvailable, 20, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
139 "When expanding, % of uncommitted space to claim.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
140 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
141 develop(bool, G1RSBarrierRegionFilter, true, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
142 "If true, generate region filtering code in RS barrier") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
143 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
144 develop(bool, G1RSBarrierNullFilter, true, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
145 "If true, generate null-pointer filtering code in RS barrier") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
146 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
147 develop(bool, G1PrintCTFilterStats, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
148 "If true, print stats on RS filtering effectiveness") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
149 \
616
4f360ec815ba 6720309: G1: don't synchronously update RSet during evacuation pauses
iveresov
parents: 545
diff changeset
150 develop(bool, G1DeferredRSUpdate, true, \
4f360ec815ba 6720309: G1: don't synchronously update RSet during evacuation pauses
iveresov
parents: 545
diff changeset
151 "If true, use deferred RS updates") \
4f360ec815ba 6720309: G1: don't synchronously update RSet during evacuation pauses
iveresov
parents: 545
diff changeset
152 \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
153 develop(bool, G1RSLogCheckCardTable, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
154 "If true, verify that no dirty cards remain after RS log " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
155 "processing.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
156 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
157 develop(bool, G1RSCountHisto, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
158 "If true, print a histogram of RS occupancies after each pause") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
159 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
160 develop(intx, G1PrintRegionLivenessInfo, 0, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
161 "When > 0, print the occupancies of the <n> best and worst" \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
162 "regions.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
163 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
164 develop(bool, G1PrintParCleanupStats, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
165 "When true, print extra stats about parallel cleanup.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
166 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
167 develop(bool, G1DisablePreBarrier, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
168 "Disable generation of pre-barrier (i.e., marking barrier) ") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
169 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
170 develop(bool, G1DisablePostBarrier, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
171 "Disable generation of post-barrier (i.e., RS barrier) ") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
172 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
173 product(intx, G1DirtyCardQueueMax, 30, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
174 "Maximum number of completed RS buffers before mutator threads " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
175 "start processing them.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
176 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
177 develop(intx, G1ConcRSLogCacheSize, 10, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
178 "Log base 2 of the length of conc RS hot-card cache.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
179 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
180 develop(bool, G1ConcRSCountTraversals, false, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
181 "If true, gather data about the number of times CR traverses " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
182 "cards ") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
183 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
184 develop(intx, G1ConcRSHotCardLimit, 4, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
185 "The threshold that defines (>=) a hot card.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
186 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
187 develop(bool, G1PrintOopAppls, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
188 "When true, print applications of closures to external locs.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
189 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
190 develop(intx, G1LogRSRegionEntries, 7, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
191 "Log_2 of max number of regions for which we keep bitmaps.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
192 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
193 develop(bool, G1RecordHRRSOops, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
194 "When true, record recent calls to rem set operations.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
195 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
196 develop(bool, G1RecordHRRSEvents, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
197 "When true, record recent calls to rem set operations.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
198 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
199 develop(intx, G1MaxVerifyFailures, -1, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
200 "The maximum number of verification failrues to print. " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
201 "-1 means print all.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
202 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
203 develop(bool, G1ScrubRemSets, true, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
204 "When true, do RS scrubbing after cleanup.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
205 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
206 develop(bool, G1RSScrubVerbose, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
207 "When true, do RS scrubbing with verbose output.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
208 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
209 develop(bool, G1YoungSurvRateVerbose, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
210 "print out the survival rate of young regions according to age.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
211 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
212 develop(intx, G1YoungSurvRateNumRegionsSummary, 0, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
213 "the number of regions for which we'll print a surv rate " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
214 "summary.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
215 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
216 product(bool, G1UseScanOnlyPrefix, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
217 "It determines whether the system will calculate an optimum " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
218 "scan-only set.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
219 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
220 product(intx, G1MinReservePercent, 10, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
221 "It determines the minimum reserve we should have in the heap " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
222 "to minimize the probability of promotion failure.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
223 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
224 diagnostic(bool, G1PrintRegions, false, \
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
225 "If set G1 will print information on which regions are being " \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
226 "allocated and which are reclaimed.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
227 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
228 develop(bool, G1HRRSUseSparseTable, true, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
229 "When true, use sparse table to save space.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
230 \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
231 develop(bool, G1HRRSFlushLogBuffersOnVerify, false, \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
232 "Forces flushing of log buffers before verification.") \
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
233 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
234 product(bool, G1UseSurvivorSpaces, true, \
545
58054a18d735 6484959: G1: introduce survivor spaces
apetrusenko
parents: 526
diff changeset
235 "When true, use survivor space.") \
58054a18d735 6484959: G1: introduce survivor spaces
apetrusenko
parents: 526
diff changeset
236 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
237 develop(bool, G1FixedTenuringThreshold, false, \
545
58054a18d735 6484959: G1: introduce survivor spaces
apetrusenko
parents: 526
diff changeset
238 "When set, G1 will not adjust the tenuring threshold") \
58054a18d735 6484959: G1: introduce survivor spaces
apetrusenko
parents: 526
diff changeset
239 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
240 develop(bool, G1FixedEdenSize, false, \
545
58054a18d735 6484959: G1: introduce survivor spaces
apetrusenko
parents: 526
diff changeset
241 "When set, G1 will not allocate unused survivor space regions") \
58054a18d735 6484959: G1: introduce survivor spaces
apetrusenko
parents: 526
diff changeset
242 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
243 develop(uintx, G1FixedSurvivorSpaceSize, 0, \
545
58054a18d735 6484959: G1: introduce survivor spaces
apetrusenko
parents: 526
diff changeset
244 "If non-0 is the size of the G1 survivor space, " \
638
2a5da27ccae9 6816154: G1: introduce flags to enable/disable RSet updating and scanning
tonyp
parents: 616
diff changeset
245 "otherwise SurvivorRatio is used to determine the size") \
2a5da27ccae9 6816154: G1: introduce flags to enable/disable RSet updating and scanning
tonyp
parents: 616
diff changeset
246 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
247 experimental(bool, G1ParallelRSetUpdatingEnabled, false, \
638
2a5da27ccae9 6816154: G1: introduce flags to enable/disable RSet updating and scanning
tonyp
parents: 616
diff changeset
248 "Enables the parallelization of remembered set updating " \
2a5da27ccae9 6816154: G1: introduce flags to enable/disable RSet updating and scanning
tonyp
parents: 616
diff changeset
249 "during evacuation pauses") \
2a5da27ccae9 6816154: G1: introduce flags to enable/disable RSet updating and scanning
tonyp
parents: 616
diff changeset
250 \
751
20c6f43950b5 6490395: G1: Tidy up command line flags.
johnc
parents: 745
diff changeset
251 experimental(bool, G1ParallelRSetScanningEnabled, false, \
638
2a5da27ccae9 6816154: G1: introduce flags to enable/disable RSet updating and scanning
tonyp
parents: 616
diff changeset
252 "Enables the parallelization of remembered set scanning " \
794
315a5d70b295 6484957: G1: parallel concurrent refinement
iveresov
parents: 751
diff changeset
253 "during evacuation pauses") \
315a5d70b295 6484957: G1: parallel concurrent refinement
iveresov
parents: 751
diff changeset
254 \
315a5d70b295 6484957: G1: parallel concurrent refinement
iveresov
parents: 751
diff changeset
255 product(uintx, G1ParallelRSetThreads, 0, \
315a5d70b295 6484957: G1: parallel concurrent refinement
iveresov
parents: 751
diff changeset
256 "If non-0 is the number of parallel rem set update threads, " \
315a5d70b295 6484957: G1: parallel concurrent refinement
iveresov
parents: 751
diff changeset
257 "otherwise the value is determined ergonomically.")
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
258
350
d28aa69f0959 6618726: Introduce -XX:+UnlockExperimentalVMOptions flag
ysr
parents: 342
diff changeset
259 G1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG)