103 #ifndef PRODUCT
104 Mutex* FullGCALot_lock = NULL;
105 #endif
106
107 Mutex* Debug1_lock = NULL;
108 Mutex* Debug2_lock = NULL;
109 Mutex* Debug3_lock = NULL;
110
111 Mutex* tty_lock = NULL;
112
113 Mutex* RawMonitor_lock = NULL;
114 Mutex* PerfDataMemAlloc_lock = NULL;
115 Mutex* PerfDataManager_lock = NULL;
116 Mutex* OopMapCacheAlloc_lock = NULL;
117
118 Mutex* FreeList_lock = NULL;
119 Monitor* SecondaryFreeList_lock = NULL;
120 Mutex* OldSets_lock = NULL;
121 Monitor* RootRegionScan_lock = NULL;
122 Mutex* MMUTracker_lock = NULL;
123 Mutex* HotCardCache_lock = NULL;
124
125 Monitor* GCTaskManager_lock = NULL;
126
127 Mutex* Management_lock = NULL;
128 Monitor* Service_lock = NULL;
129 Monitor* PeriodicTask_lock = NULL;
130
131 #ifdef INCLUDE_TRACE
132 Mutex* JfrStacktrace_lock = NULL;
133 Monitor* JfrMsg_lock = NULL;
134 Mutex* JfrBuffer_lock = NULL;
135 Mutex* JfrStream_lock = NULL;
136 Mutex* JfrThreadGroups_lock = NULL;
137 #endif
138
139 #ifndef SUPPORTS_NATIVE_CX8
140 Mutex* UnsafeJlong_lock = NULL;
141 #endif
142
143 #define MAX_NUM_MUTEX 128
182 if (UseConcMarkSweepGC || UseG1GC) {
183 def(FullGCCount_lock , Monitor, leaf, true, Monitor::_safepoint_check_never); // in support of ExplicitGCInvokesConcurrent
184 }
185 if (UseG1GC) {
186
187 def(CMark_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_never); // coordinate concurrent mark thread
188 def(CMRegionStack_lock , Mutex, leaf, true, Monitor::_safepoint_check_never);
189 def(SATB_Q_FL_lock , Mutex , special, true, Monitor::_safepoint_check_never);
190 def(SATB_Q_CBL_mon , Monitor, nonleaf, true, Monitor::_safepoint_check_never);
191 def(Shared_SATB_Q_lock , Mutex, nonleaf, true, Monitor::_safepoint_check_never);
192
193 def(DirtyCardQ_FL_lock , Mutex , special, true, Monitor::_safepoint_check_never);
194 def(DirtyCardQ_CBL_mon , Monitor, nonleaf, true, Monitor::_safepoint_check_never);
195 def(Shared_DirtyCardQ_lock , Mutex, nonleaf, true, Monitor::_safepoint_check_never);
196
197 def(FreeList_lock , Mutex, leaf , true, Monitor::_safepoint_check_never);
198 def(SecondaryFreeList_lock , Monitor, leaf , true, Monitor::_safepoint_check_never);
199 def(OldSets_lock , Mutex , leaf , true, Monitor::_safepoint_check_never);
200 def(RootRegionScan_lock , Monitor, leaf , true, Monitor::_safepoint_check_never);
201 def(MMUTracker_lock , Mutex , leaf , true, Monitor::_safepoint_check_never);
202 def(HotCardCache_lock , Mutex , special , true, Monitor::_safepoint_check_never);
203 def(EvacFailureStack_lock , Mutex , nonleaf , true, Monitor::_safepoint_check_never);
204
205 def(StringDedupQueue_lock , Monitor, leaf, true, Monitor::_safepoint_check_never);
206 def(StringDedupTable_lock , Mutex , leaf, true, Monitor::_safepoint_check_never);
207 }
208 def(ParGCRareEvent_lock , Mutex , leaf , true, Monitor::_safepoint_check_sometimes);
209 def(DerivedPointerTableGC_lock , Mutex, leaf, true, Monitor::_safepoint_check_never);
210 def(CodeCache_lock , Mutex , special, true, Monitor::_safepoint_check_never);
211 def(Interrupt_lock , Monitor, special, true, Monitor::_safepoint_check_never); // used for interrupt processing
212 def(RawMonitor_lock , Mutex, special, true, Monitor::_safepoint_check_never);
213 def(OopMapCacheAlloc_lock , Mutex, leaf, true, Monitor::_safepoint_check_always); // used for oop_map_cache allocation.
214
215 def(Patching_lock , Mutex , special, true, Monitor::_safepoint_check_never); // used for safepointing and code patching.
216 def(ObjAllocPost_lock , Monitor, special, false, Monitor::_safepoint_check_never);
217 def(Service_lock , Monitor, special, true, Monitor::_safepoint_check_never); // used for service thread operations
218 def(JmethodIdCreation_lock , Mutex , leaf, true, Monitor::_safepoint_check_always); // used for creating jmethodIDs.
219
220 def(SystemDictionary_lock , Monitor, leaf, true, Monitor::_safepoint_check_always); // lookups done by VM thread
221 def(PackageTable_lock , Mutex , leaf, false, Monitor::_safepoint_check_always);
222 def(InlineCacheBuffer_lock , Mutex , leaf, true, Monitor::_safepoint_check_always);
|
103 #ifndef PRODUCT
104 Mutex* FullGCALot_lock = NULL;
105 #endif
106
107 Mutex* Debug1_lock = NULL;
108 Mutex* Debug2_lock = NULL;
109 Mutex* Debug3_lock = NULL;
110
111 Mutex* tty_lock = NULL;
112
113 Mutex* RawMonitor_lock = NULL;
114 Mutex* PerfDataMemAlloc_lock = NULL;
115 Mutex* PerfDataManager_lock = NULL;
116 Mutex* OopMapCacheAlloc_lock = NULL;
117
118 Mutex* FreeList_lock = NULL;
119 Monitor* SecondaryFreeList_lock = NULL;
120 Mutex* OldSets_lock = NULL;
121 Monitor* RootRegionScan_lock = NULL;
122 Mutex* MMUTracker_lock = NULL;
123
124 Monitor* GCTaskManager_lock = NULL;
125
126 Mutex* Management_lock = NULL;
127 Monitor* Service_lock = NULL;
128 Monitor* PeriodicTask_lock = NULL;
129
130 #ifdef INCLUDE_TRACE
131 Mutex* JfrStacktrace_lock = NULL;
132 Monitor* JfrMsg_lock = NULL;
133 Mutex* JfrBuffer_lock = NULL;
134 Mutex* JfrStream_lock = NULL;
135 Mutex* JfrThreadGroups_lock = NULL;
136 #endif
137
138 #ifndef SUPPORTS_NATIVE_CX8
139 Mutex* UnsafeJlong_lock = NULL;
140 #endif
141
142 #define MAX_NUM_MUTEX 128
181 if (UseConcMarkSweepGC || UseG1GC) {
182 def(FullGCCount_lock , Monitor, leaf, true, Monitor::_safepoint_check_never); // in support of ExplicitGCInvokesConcurrent
183 }
184 if (UseG1GC) {
185
186 def(CMark_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_never); // coordinate concurrent mark thread
187 def(CMRegionStack_lock , Mutex, leaf, true, Monitor::_safepoint_check_never);
188 def(SATB_Q_FL_lock , Mutex , special, true, Monitor::_safepoint_check_never);
189 def(SATB_Q_CBL_mon , Monitor, nonleaf, true, Monitor::_safepoint_check_never);
190 def(Shared_SATB_Q_lock , Mutex, nonleaf, true, Monitor::_safepoint_check_never);
191
192 def(DirtyCardQ_FL_lock , Mutex , special, true, Monitor::_safepoint_check_never);
193 def(DirtyCardQ_CBL_mon , Monitor, nonleaf, true, Monitor::_safepoint_check_never);
194 def(Shared_DirtyCardQ_lock , Mutex, nonleaf, true, Monitor::_safepoint_check_never);
195
196 def(FreeList_lock , Mutex, leaf , true, Monitor::_safepoint_check_never);
197 def(SecondaryFreeList_lock , Monitor, leaf , true, Monitor::_safepoint_check_never);
198 def(OldSets_lock , Mutex , leaf , true, Monitor::_safepoint_check_never);
199 def(RootRegionScan_lock , Monitor, leaf , true, Monitor::_safepoint_check_never);
200 def(MMUTracker_lock , Mutex , leaf , true, Monitor::_safepoint_check_never);
201 def(EvacFailureStack_lock , Mutex , nonleaf , true, Monitor::_safepoint_check_never);
202
203 def(StringDedupQueue_lock , Monitor, leaf, true, Monitor::_safepoint_check_never);
204 def(StringDedupTable_lock , Mutex , leaf, true, Monitor::_safepoint_check_never);
205 }
206 def(ParGCRareEvent_lock , Mutex , leaf , true, Monitor::_safepoint_check_sometimes);
207 def(DerivedPointerTableGC_lock , Mutex, leaf, true, Monitor::_safepoint_check_never);
208 def(CodeCache_lock , Mutex , special, true, Monitor::_safepoint_check_never);
209 def(Interrupt_lock , Monitor, special, true, Monitor::_safepoint_check_never); // used for interrupt processing
210 def(RawMonitor_lock , Mutex, special, true, Monitor::_safepoint_check_never);
211 def(OopMapCacheAlloc_lock , Mutex, leaf, true, Monitor::_safepoint_check_always); // used for oop_map_cache allocation.
212
213 def(Patching_lock , Mutex , special, true, Monitor::_safepoint_check_never); // used for safepointing and code patching.
214 def(ObjAllocPost_lock , Monitor, special, false, Monitor::_safepoint_check_never);
215 def(Service_lock , Monitor, special, true, Monitor::_safepoint_check_never); // used for service thread operations
216 def(JmethodIdCreation_lock , Mutex , leaf, true, Monitor::_safepoint_check_always); // used for creating jmethodIDs.
217
218 def(SystemDictionary_lock , Monitor, leaf, true, Monitor::_safepoint_check_always); // lookups done by VM thread
219 def(PackageTable_lock , Mutex , leaf, false, Monitor::_safepoint_check_always);
220 def(InlineCacheBuffer_lock , Mutex , leaf, true, Monitor::_safepoint_check_always);
|