1 /*
2 * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
90 \
91 product(uintx, G1SATBBufferEnqueueingThresholdPercent, 60, \
92 "Before enqueueing them, each mutator thread tries to do some " \
93 "filtering on the SATB buffers it generates. If post-filtering " \
94 "the percentage of retained entries is over this threshold " \
95 "the buffer will be enqueued for processing. A value of 0 " \
96 "specifies that mutator threads should not do such filtering.") \
97 range(0, 100) \
98 \
99 experimental(intx, G1ExpandByPercentOfAvailable, 20, \
100 "When expanding, % of uncommitted space to claim.") \
101 range(0, 100) \
102 \
103 develop(bool, G1RSBarrierRegionFilter, true, \
104 "If true, generate region filtering code in RS barrier") \
105 \
106 product(size_t, G1UpdateBufferSize, 256, \
107 "Size of an update buffer") \
108 range(1, NOT_LP64(32*M) LP64_ONLY(1*G)) \
109 \
110 product(intx, G1ConcRefinementYellowZone, 0, \
111 "Number of enqueued update buffers that will " \
112 "trigger concurrent processing. Will be selected ergonomically " \
113 "by default.") \
114 range(0, max_intx) \
115 \
116 product(intx, G1ConcRefinementRedZone, 0, \
117 "Maximum number of enqueued update buffers before mutator " \
118 "threads start processing new ones instead of enqueueing them. " \
119 "Will be selected ergonomically by default. Zero will disable " \
120 "concurrent processing.") \
121 range(0, max_intx) \
122 \
123 product(intx, G1ConcRefinementGreenZone, 0, \
124 "The number of update buffers that are left in the queue by the " \
125 "concurrent processing threads. Will be selected ergonomically " \
126 "by default.") \
127 range(0, max_intx) \
128 \
129 product(intx, G1ConcRefinementServiceIntervalMillis, 300, \
130 "The last concurrent refinement thread wakes up every " \
131 "specified number of milliseconds to do miscellaneous work.") \
132 range(0, max_jint) \
133 \
134 product(intx, G1ConcRefinementThresholdStep, 0, \
135 "Each time the rset update queue increases by this amount " \
136 "activate the next refinement thread if available. " \
137 "Will be selected ergonomically by default.") \
138 range(0, max_jint) \
139 \
140 product(intx, G1RSetUpdatingPauseTimePercent, 10, \
141 "A target percentage of time that is allowed to be spend on " \
142 "process RS update buffers during the collection pause.") \
143 range(0, 100) \
144 \
145 product(bool, G1UseAdaptiveConcRefinement, true, \
146 "Select green, yellow and red zones adaptively to meet the " \
147 "the pause requirements.") \
148 \
149 product(size_t, G1ConcRSLogCacheSize, 10, \
150 "Log base 2 of the length of conc RS hot-card cache.") \
151 range(0, 27) \
152 \
153 product(uintx, G1ConcRSHotCardLimit, 4, \
154 "The threshold that defines (>=) a hot card.") \
155 range(0, max_jubyte) \
156 \
157 develop(intx, G1RSetRegionEntriesBase, 256, \
158 "Max number of regions in a fine-grain table per MB.") \
|
1 /*
2 * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
90 \
91 product(uintx, G1SATBBufferEnqueueingThresholdPercent, 60, \
92 "Before enqueueing them, each mutator thread tries to do some " \
93 "filtering on the SATB buffers it generates. If post-filtering " \
94 "the percentage of retained entries is over this threshold " \
95 "the buffer will be enqueued for processing. A value of 0 " \
96 "specifies that mutator threads should not do such filtering.") \
97 range(0, 100) \
98 \
99 experimental(intx, G1ExpandByPercentOfAvailable, 20, \
100 "When expanding, % of uncommitted space to claim.") \
101 range(0, 100) \
102 \
103 develop(bool, G1RSBarrierRegionFilter, true, \
104 "If true, generate region filtering code in RS barrier") \
105 \
106 product(size_t, G1UpdateBufferSize, 256, \
107 "Size of an update buffer") \
108 range(1, NOT_LP64(32*M) LP64_ONLY(1*G)) \
109 \
110 product(size_t, G1ConcRefinementYellowZone, 0, \
111 "Number of enqueued update buffers that will " \
112 "trigger concurrent processing. Will be selected ergonomically " \
113 "by default.") \
114 range(0, SIZE_MAX) \
115 \
116 product(size_t, G1ConcRefinementRedZone, 0, \
117 "Maximum number of enqueued update buffers before mutator " \
118 "threads start processing new ones instead of enqueueing them. " \
119 "Will be selected ergonomically by default. Zero will disable " \
120 "concurrent processing.") \
121 range(0, SIZE_MAX) \
122 \
123 product(size_t, G1ConcRefinementGreenZone, 0, \
124 "The number of update buffers that are left in the queue by the " \
125 "concurrent processing threads. Will be selected ergonomically " \
126 "by default.") \
127 range(0, SIZE_MAX) \
128 \
129 product(intx, G1ConcRefinementServiceIntervalMillis, 300, \
130 "The last concurrent refinement thread wakes up every " \
131 "specified number of milliseconds to do miscellaneous work.") \
132 range(0, max_jint) \
133 \
134 product(size_t, G1ConcRefinementThresholdStep, 0, \
135 "Each time the rset update queue increases by this amount " \
136 "activate the next refinement thread if available. " \
137 "Will be selected ergonomically by default.") \
138 range(0, SIZE_MAX) \
139 \
140 product(intx, G1RSetUpdatingPauseTimePercent, 10, \
141 "A target percentage of time that is allowed to be spend on " \
142 "process RS update buffers during the collection pause.") \
143 range(0, 100) \
144 \
145 product(bool, G1UseAdaptiveConcRefinement, true, \
146 "Select green, yellow and red zones adaptively to meet the " \
147 "the pause requirements.") \
148 \
149 product(size_t, G1ConcRSLogCacheSize, 10, \
150 "Log base 2 of the length of conc RS hot-card cache.") \
151 range(0, 27) \
152 \
153 product(uintx, G1ConcRSHotCardLimit, 4, \
154 "The threshold that defines (>=) a hot card.") \
155 range(0, max_jubyte) \
156 \
157 develop(intx, G1RSetRegionEntriesBase, 256, \
158 "Max number of regions in a fine-grain table per MB.") \
|