21 * questions. 22 * 23 */ 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_G1GC 33 #include "gc/g1/g1_globals.hpp" 34 #endif 35 #if INCLUDE_PARALLELGC 36 #include "gc/parallel/parallel_globals.hpp" 37 #endif 38 #if INCLUDE_SERIALGC 39 #include "gc/serial/serial_globals.hpp" 40 #endif 41 42 #define GC_FLAGS(develop, \ 43 develop_pd, \ 44 product, \ 45 product_pd, \ 46 diagnostic, \ 47 diagnostic_pd, \ 48 experimental, \ 49 notproduct, \ 50 manageable, \ 51 product_rw, \ 52 lp64_product, \ 53 range, \ 54 constraint, \ 55 writeable) \ 56 \ 57 CMSGC_ONLY(GC_CMS_FLAGS( \ 58 develop, \ 59 develop_pd, \ 60 product, \ 101 range, \ 102 constraint, \ 103 writeable)) \ 104 \ 105 SERIALGC_ONLY(GC_SERIAL_FLAGS( \ 106 develop, \ 107 develop_pd, \ 108 product, \ 109 product_pd, \ 110 diagnostic, \ 111 diagnostic_pd, \ 112 experimental, \ 113 notproduct, \ 114 manageable, \ 115 product_rw, \ 116 lp64_product, \ 117 range, \ 118 constraint, \ 119 writeable)) \ 120 \ 121 /* gc */ \ 122 \ 123 product(bool, UseConcMarkSweepGC, false, \ 124 "Use Concurrent Mark-Sweep GC in the old generation") \ 125 \ 126 product(bool, UseSerialGC, false, \ 127 "Use the Serial garbage collector") \ 128 \ 129 product(bool, UseG1GC, false, \ 130 "Use the Garbage-First garbage collector") \ 131 \ 132 product(bool, UseParallelGC, false, \ 133 "Use the Parallel Scavenge garbage collector") \ 134 \ 135 product(bool, UseParallelOldGC, false, \ 136 "Use the Parallel Old garbage collector") \ 137 \ 138 product(uint, ParallelGCThreads, 0, \ 139 "Number of parallel threads parallel gc will use") \ 140 constraint(ParallelGCThreadsConstraintFunc,AfterErgo) \ 141 \ 142 diagnostic(bool, UseSemaphoreGCThreadsSynchronization, true, \ 143 "Use semaphore synchronization for the GC Threads, " \ 144 "instead of synchronization based on mutexes") \ 145 \ 146 product(bool, UseDynamicNumberOfGCThreads, true, \ 147 "Dynamically choose the number of threads up to a maximum of " \ 148 "ParallelGCThreads parallel collectors will use for garbage " \ 149 "collection work") \ 150 \ 151 diagnostic(bool, InjectGCWorkerCreationFailure, false, \ 152 "Inject thread creation failures for " \ 153 "UseDynamicNumberOfGCThreads") \ 154 \ 155 diagnostic(bool, ForceDynamicNumberOfGCThreads, false, \ 156 "Force dynamic selection of the number of " \ | 21 * questions. 22 * 23 */ 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_G1GC 33 #include "gc/g1/g1_globals.hpp" 34 #endif 35 #if INCLUDE_PARALLELGC 36 #include "gc/parallel/parallel_globals.hpp" 37 #endif 38 #if INCLUDE_SERIALGC 39 #include "gc/serial/serial_globals.hpp" 40 #endif 41 #if INCLUDE_EPSILONGC 42 #include "gc/epsilon/epsilon_globals.hpp" 43 #endif 44 45 #define GC_FLAGS(develop, \ 46 develop_pd, \ 47 product, \ 48 product_pd, \ 49 diagnostic, \ 50 diagnostic_pd, \ 51 experimental, \ 52 notproduct, \ 53 manageable, \ 54 product_rw, \ 55 lp64_product, \ 56 range, \ 57 constraint, \ 58 writeable) \ 59 \ 60 CMSGC_ONLY(GC_CMS_FLAGS( \ 61 develop, \ 62 develop_pd, \ 63 product, \ 104 range, \ 105 constraint, \ 106 writeable)) \ 107 \ 108 SERIALGC_ONLY(GC_SERIAL_FLAGS( \ 109 develop, \ 110 develop_pd, \ 111 product, \ 112 product_pd, \ 113 diagnostic, \ 114 diagnostic_pd, \ 115 experimental, \ 116 notproduct, \ 117 manageable, \ 118 product_rw, \ 119 lp64_product, \ 120 range, \ 121 constraint, \ 122 writeable)) \ 123 \ 124 EPSILONGC_ONLY(GC_EPSILON_FLAGS( \ 125 develop, \ 126 develop_pd, \ 127 product, \ 128 product_pd, \ 129 diagnostic, \ 130 diagnostic_pd, \ 131 experimental, \ 132 notproduct, \ 133 manageable, \ 134 product_rw, \ 135 lp64_product, \ 136 range, \ 137 constraint, \ 138 writeable)) \ 139 \ 140 /* gc */ \ 141 \ 142 product(bool, UseConcMarkSweepGC, false, \ 143 "Use Concurrent Mark-Sweep GC in the old generation") \ 144 \ 145 product(bool, UseSerialGC, false, \ 146 "Use the Serial garbage collector") \ 147 \ 148 product(bool, UseG1GC, false, \ 149 "Use the Garbage-First garbage collector") \ 150 \ 151 product(bool, UseParallelGC, false, \ 152 "Use the Parallel Scavenge garbage collector") \ 153 \ 154 product(bool, UseParallelOldGC, false, \ 155 "Use the Parallel Old garbage collector") \ 156 \ 157 experimental(bool, UseEpsilonGC, false, \ 158 "Use the Epsilon (no-op) garbage collector") \ 159 \ 160 product(uint, ParallelGCThreads, 0, \ 161 "Number of parallel threads parallel gc will use") \ 162 constraint(ParallelGCThreadsConstraintFunc,AfterErgo) \ 163 \ 164 diagnostic(bool, UseSemaphoreGCThreadsSynchronization, true, \ 165 "Use semaphore synchronization for the GC Threads, " \ 166 "instead of synchronization based on mutexes") \ 167 \ 168 product(bool, UseDynamicNumberOfGCThreads, true, \ 169 "Dynamically choose the number of threads up to a maximum of " \ 170 "ParallelGCThreads parallel collectors will use for garbage " \ 171 "collection work") \ 172 \ 173 diagnostic(bool, InjectGCWorkerCreationFailure, false, \ 174 "Inject thread creation failures for " \ 175 "UseDynamicNumberOfGCThreads") \ 176 \ 177 diagnostic(bool, ForceDynamicNumberOfGCThreads, false, \ 178 "Force dynamic selection of the number of " \ |