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( \ 64 develop, \ 65 develop_pd, \ 66 product, \ 107 range, \ 108 constraint, \ 109 writeable)) \ 110 \ 111 PARALLELGC_ONLY(GC_PARALLEL_FLAGS( \ 112 develop, \ 113 develop_pd, \ 114 product, \ 115 product_pd, \ 116 diagnostic, \ 117 diagnostic_pd, \ 118 experimental, \ 119 notproduct, \ 120 manageable, \ 121 product_rw, \ 122 lp64_product, \ 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, \ 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 " \ | 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 #if INCLUDE_SHENANDOAHGC 48 #include "gc/shenandoah/shenandoah_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( \ 67 develop, \ 68 develop_pd, \ 69 product, \ 110 range, \ 111 constraint, \ 112 writeable)) \ 113 \ 114 PARALLELGC_ONLY(GC_PARALLEL_FLAGS( \ 115 develop, \ 116 develop_pd, \ 117 product, \ 118 product_pd, \ 119 diagnostic, \ 120 diagnostic_pd, \ 121 experimental, \ 122 notproduct, \ 123 manageable, \ 124 product_rw, \ 125 lp64_product, \ 126 range, \ 127 constraint, \ 128 writeable)) \ 129 \ 130 SHENANDOAHGC_ONLY(GC_SHENANDOAH_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 SERIALGC_ONLY(GC_SERIAL_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, \ 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 " \ |