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