142 if (FLAG_IS_CMDLINE(UseDynamicNumberOfGCThreads)) {
143 warning("Shenandoah does not support UseDynamicNumberOfGCThreads, disabling");
144 }
145 FLAG_SET_DEFAULT(UseDynamicNumberOfGCThreads, false);
146 }
147
148 if (ShenandoahRegionSampling && FLAG_IS_DEFAULT(PerfDataMemorySize)) {
149 // When sampling is enabled, max out the PerfData memory to get more
150 // Shenandoah data in, including Matrix.
151 FLAG_SET_DEFAULT(PerfDataMemorySize, 2048*K);
152 }
153
154 #ifdef COMPILER2
155 // Shenandoah cares more about pause times, rather than raw throughput.
156 if (FLAG_IS_DEFAULT(UseCountedLoopSafepoints)) {
157 FLAG_SET_DEFAULT(UseCountedLoopSafepoints, true);
158 if (FLAG_IS_DEFAULT(LoopStripMiningIter)) {
159 FLAG_SET_DEFAULT(LoopStripMiningIter, 1000);
160 }
161 }
162 #ifdef ASSERT
163 // C2 barrier verification is only reliable when all default barriers are enabled
164 if (ShenandoahVerifyOptoBarriers &&
165 (!FLAG_IS_DEFAULT(ShenandoahSATBBarrier) ||
166 !FLAG_IS_DEFAULT(ShenandoahLoadRefBarrier) ||
167 !FLAG_IS_DEFAULT(ShenandoahCASBarrier) ||
168 !FLAG_IS_DEFAULT(ShenandoahCloneBarrier)
169 )) {
170 warning("Unusual barrier configuration, disabling C2 barrier verification");
171 FLAG_SET_DEFAULT(ShenandoahVerifyOptoBarriers, false);
172 }
173 #else
174 guarantee(!ShenandoahVerifyOptoBarriers, "Should be disabled");
175 #endif // ASSERT
176 #endif // COMPILER2
177
178 // Record more information about previous cycles for improved debugging pleasure
179 if (FLAG_IS_DEFAULT(LogEventsBufferEntries)) {
180 FLAG_SET_DEFAULT(LogEventsBufferEntries, 250);
181 }
182
183 if ((InitialHeapSize == MaxHeapSize) && ShenandoahUncommit) {
184 log_info(gc)("Min heap equals to max heap, disabling ShenandoahUncommit");
185 FLAG_SET_DEFAULT(ShenandoahUncommit, false);
186 }
187
188 // If class unloading is disabled, no unloading for concurrent cycles as well.
189 if (!ClassUnloading) {
190 FLAG_SET_DEFAULT(ClassUnloadingWithConcurrentMark, false);
191 }
192
193 // TLAB sizing policy makes resizing decisions before each GC cycle. It averages
194 // historical data, assigning more recent data the weight according to TLABAllocationWeight.
195 // Current default is good for generational collectors that run frequent young GCs.
|
142 if (FLAG_IS_CMDLINE(UseDynamicNumberOfGCThreads)) {
143 warning("Shenandoah does not support UseDynamicNumberOfGCThreads, disabling");
144 }
145 FLAG_SET_DEFAULT(UseDynamicNumberOfGCThreads, false);
146 }
147
148 if (ShenandoahRegionSampling && FLAG_IS_DEFAULT(PerfDataMemorySize)) {
149 // When sampling is enabled, max out the PerfData memory to get more
150 // Shenandoah data in, including Matrix.
151 FLAG_SET_DEFAULT(PerfDataMemorySize, 2048*K);
152 }
153
154 #ifdef COMPILER2
155 // Shenandoah cares more about pause times, rather than raw throughput.
156 if (FLAG_IS_DEFAULT(UseCountedLoopSafepoints)) {
157 FLAG_SET_DEFAULT(UseCountedLoopSafepoints, true);
158 if (FLAG_IS_DEFAULT(LoopStripMiningIter)) {
159 FLAG_SET_DEFAULT(LoopStripMiningIter, 1000);
160 }
161 }
162 #endif // COMPILER2
163
164 // Record more information about previous cycles for improved debugging pleasure
165 if (FLAG_IS_DEFAULT(LogEventsBufferEntries)) {
166 FLAG_SET_DEFAULT(LogEventsBufferEntries, 250);
167 }
168
169 if ((InitialHeapSize == MaxHeapSize) && ShenandoahUncommit) {
170 log_info(gc)("Min heap equals to max heap, disabling ShenandoahUncommit");
171 FLAG_SET_DEFAULT(ShenandoahUncommit, false);
172 }
173
174 // If class unloading is disabled, no unloading for concurrent cycles as well.
175 if (!ClassUnloading) {
176 FLAG_SET_DEFAULT(ClassUnloadingWithConcurrentMark, false);
177 }
178
179 // TLAB sizing policy makes resizing decisions before each GC cycle. It averages
180 // historical data, assigning more recent data the weight according to TLABAllocationWeight.
181 // Current default is good for generational collectors that run frequent young GCs.
|