24
25 #ifndef SHARE_GC_SHARED_GC_GLOBALS_HPP
26 #define SHARE_GC_SHARED_GC_GLOBALS_HPP
27
28 #include "utilities/macros.hpp"
29 #if INCLUDE_CMSGC
30 #include "gc/cms/cms_globals.hpp"
31 #endif
32 #if INCLUDE_EPSILONGC
33 #include "gc/epsilon/epsilon_globals.hpp"
34 #endif
35 #if INCLUDE_G1GC
36 #include "gc/g1/g1_globals.hpp"
37 #endif
38 #if INCLUDE_PARALLELGC
39 #include "gc/parallel/parallel_globals.hpp"
40 #endif
41 #if INCLUDE_SERIALGC
42 #include "gc/serial/serial_globals.hpp"
43 #endif
44 #if INCLUDE_ZGC
45 #include "gc/z/z_globals.hpp"
46 #endif
47
48 #define GC_FLAGS(develop, \
49 develop_pd, \
50 product, \
51 product_pd, \
52 diagnostic, \
53 diagnostic_pd, \
54 experimental, \
55 notproduct, \
56 manageable, \
57 product_rw, \
58 lp64_product, \
59 range, \
60 constraint, \
61 writeable) \
62 \
63 CMSGC_ONLY(GC_CMS_FLAGS( \
123 range, \
124 constraint, \
125 writeable)) \
126 \
127 SERIALGC_ONLY(GC_SERIAL_FLAGS( \
128 develop, \
129 develop_pd, \
130 product, \
131 product_pd, \
132 diagnostic, \
133 diagnostic_pd, \
134 experimental, \
135 notproduct, \
136 manageable, \
137 product_rw, \
138 lp64_product, \
139 range, \
140 constraint, \
141 writeable)) \
142 \
143 ZGC_ONLY(GC_Z_FLAGS( \
144 develop, \
145 develop_pd, \
146 product, \
147 product_pd, \
148 diagnostic, \
149 diagnostic_pd, \
150 experimental, \
151 notproduct, \
152 manageable, \
153 product_rw, \
154 lp64_product, \
155 range, \
156 constraint, \
157 writeable)) \
158 \
159 /* gc */ \
160 \
161 product(bool, UseConcMarkSweepGC, false, \
162 "Use Concurrent Mark-Sweep GC in the old generation") \
163 \
164 product(bool, UseSerialGC, false, \
165 "Use the Serial garbage collector") \
166 \
167 product(bool, UseG1GC, false, \
168 "Use the Garbage-First garbage collector") \
169 \
170 product(bool, UseParallelGC, false, \
171 "Use the Parallel Scavenge garbage collector") \
172 \
173 product(bool, UseParallelOldGC, false, \
174 "Use the Parallel Old garbage collector") \
175 \
176 experimental(bool, UseEpsilonGC, false, \
177 "Use the Epsilon (no-op) garbage collector") \
178 \
179 experimental(bool, UseZGC, false, \
180 "Use the Z garbage collector") \
181 \
182 product(uint, ParallelGCThreads, 0, \
183 "Number of parallel threads parallel gc will use") \
184 constraint(ParallelGCThreadsConstraintFunc,AfterErgo) \
185 \
186 diagnostic(bool, UseSemaphoreGCThreadsSynchronization, true, \
187 "Use semaphore synchronization for the GC Threads, " \
188 "instead of synchronization based on mutexes") \
189 \
190 product(bool, UseDynamicNumberOfGCThreads, true, \
191 "Dynamically choose the number of threads up to a maximum of " \
192 "ParallelGCThreads parallel collectors will use for garbage " \
193 "collection work") \
194 \
195 diagnostic(bool, InjectGCWorkerCreationFailure, false, \
196 "Inject thread creation failures for " \
197 "UseDynamicNumberOfGCThreads") \
198 \
199 diagnostic(bool, ForceDynamicNumberOfGCThreads, false, \
200 "Force dynamic selection of the number of " \
|
24
25 #ifndef SHARE_GC_SHARED_GC_GLOBALS_HPP
26 #define SHARE_GC_SHARED_GC_GLOBALS_HPP
27
28 #include "utilities/macros.hpp"
29 #if INCLUDE_CMSGC
30 #include "gc/cms/cms_globals.hpp"
31 #endif
32 #if INCLUDE_EPSILONGC
33 #include "gc/epsilon/epsilon_globals.hpp"
34 #endif
35 #if INCLUDE_G1GC
36 #include "gc/g1/g1_globals.hpp"
37 #endif
38 #if INCLUDE_PARALLELGC
39 #include "gc/parallel/parallel_globals.hpp"
40 #endif
41 #if INCLUDE_SERIALGC
42 #include "gc/serial/serial_globals.hpp"
43 #endif
44 #if INCLUDE_SHENANDOAHGC
45 #include "gc/shenandoah/shenandoah_globals.hpp"
46 #endif
47 #if INCLUDE_ZGC
48 #include "gc/z/z_globals.hpp"
49 #endif
50
51 #define GC_FLAGS(develop, \
52 develop_pd, \
53 product, \
54 product_pd, \
55 diagnostic, \
56 diagnostic_pd, \
57 experimental, \
58 notproduct, \
59 manageable, \
60 product_rw, \
61 lp64_product, \
62 range, \
63 constraint, \
64 writeable) \
65 \
66 CMSGC_ONLY(GC_CMS_FLAGS( \
126 range, \
127 constraint, \
128 writeable)) \
129 \
130 SERIALGC_ONLY(GC_SERIAL_FLAGS( \
131 develop, \
132 develop_pd, \
133 product, \
134 product_pd, \
135 diagnostic, \
136 diagnostic_pd, \
137 experimental, \
138 notproduct, \
139 manageable, \
140 product_rw, \
141 lp64_product, \
142 range, \
143 constraint, \
144 writeable)) \
145 \
146 SHENANDOAHGC_ONLY(GC_SHENANDOAH_FLAGS( \
147 develop, \
148 develop_pd, \
149 product, \
150 product_pd, \
151 diagnostic, \
152 diagnostic_pd, \
153 experimental, \
154 notproduct, \
155 manageable, \
156 product_rw, \
157 lp64_product, \
158 range, \
159 constraint, \
160 writeable)) \
161 \
162 ZGC_ONLY(GC_Z_FLAGS( \
163 develop, \
164 develop_pd, \
165 product, \
166 product_pd, \
167 diagnostic, \
168 diagnostic_pd, \
169 experimental, \
170 notproduct, \
171 manageable, \
172 product_rw, \
173 lp64_product, \
174 range, \
175 constraint, \
176 writeable)) \
177 \
178 /* gc */ \
179 \
180 product(bool, UseConcMarkSweepGC, false, \
181 "Use Concurrent Mark-Sweep GC in the old generation") \
182 \
183 product(bool, UseSerialGC, false, \
184 "Use the Serial garbage collector") \
185 \
186 product(bool, UseG1GC, false, \
187 "Use the Garbage-First garbage collector") \
188 \
189 product(bool, UseParallelGC, false, \
190 "Use the Parallel Scavenge garbage collector") \
191 \
192 product(bool, UseParallelOldGC, false, \
193 "Use the Parallel Old garbage collector") \
194 \
195 experimental(bool, UseEpsilonGC, false, \
196 "Use the Epsilon (no-op) garbage collector") \
197 \
198 experimental(bool, UseZGC, false, \
199 "Use the Z garbage collector") \
200 \
201 experimental(bool, UseShenandoahGC, false, \
202 "Use the Shenandoah garbage collector") \
203 \
204 product(uint, ParallelGCThreads, 0, \
205 "Number of parallel threads parallel gc will use") \
206 constraint(ParallelGCThreadsConstraintFunc,AfterErgo) \
207 \
208 diagnostic(bool, UseSemaphoreGCThreadsSynchronization, true, \
209 "Use semaphore synchronization for the GC Threads, " \
210 "instead of synchronization based on mutexes") \
211 \
212 product(bool, UseDynamicNumberOfGCThreads, true, \
213 "Dynamically choose the number of threads up to a maximum of " \
214 "ParallelGCThreads parallel collectors will use for garbage " \
215 "collection work") \
216 \
217 diagnostic(bool, InjectGCWorkerCreationFailure, false, \
218 "Inject thread creation failures for " \
219 "UseDynamicNumberOfGCThreads") \
220 \
221 diagnostic(bool, ForceDynamicNumberOfGCThreads, false, \
222 "Force dynamic selection of the number of " \
|