48 Mutex* MemberNameTable_lock = NULL; |
48 Mutex* MemberNameTable_lock = NULL; |
49 Mutex* JmethodIdCreation_lock = NULL; |
49 Mutex* JmethodIdCreation_lock = NULL; |
50 Mutex* JfieldIdCreation_lock = NULL; |
50 Mutex* JfieldIdCreation_lock = NULL; |
51 Monitor* JNICritical_lock = NULL; |
51 Monitor* JNICritical_lock = NULL; |
52 Mutex* JvmtiThreadState_lock = NULL; |
52 Mutex* JvmtiThreadState_lock = NULL; |
53 Monitor* JvmtiPendingEvent_lock = NULL; |
|
54 Monitor* Heap_lock = NULL; |
53 Monitor* Heap_lock = NULL; |
55 Mutex* ExpandHeap_lock = NULL; |
54 Mutex* ExpandHeap_lock = NULL; |
56 Mutex* AdapterHandlerLibrary_lock = NULL; |
55 Mutex* AdapterHandlerLibrary_lock = NULL; |
57 Mutex* SignatureHandlerLibrary_lock = NULL; |
56 Mutex* SignatureHandlerLibrary_lock = NULL; |
58 Mutex* VtableStubs_lock = NULL; |
57 Mutex* VtableStubs_lock = NULL; |
71 Monitor* Threads_lock = NULL; |
70 Monitor* Threads_lock = NULL; |
72 Monitor* CGC_lock = NULL; |
71 Monitor* CGC_lock = NULL; |
73 Monitor* STS_lock = NULL; |
72 Monitor* STS_lock = NULL; |
74 Monitor* SLT_lock = NULL; |
73 Monitor* SLT_lock = NULL; |
75 Monitor* FullGCCount_lock = NULL; |
74 Monitor* FullGCCount_lock = NULL; |
76 Monitor* CMark_lock = NULL; |
|
77 Mutex* CMRegionStack_lock = NULL; |
|
78 Mutex* SATB_Q_FL_lock = NULL; |
75 Mutex* SATB_Q_FL_lock = NULL; |
79 Monitor* SATB_Q_CBL_mon = NULL; |
76 Monitor* SATB_Q_CBL_mon = NULL; |
80 Mutex* Shared_SATB_Q_lock = NULL; |
77 Mutex* Shared_SATB_Q_lock = NULL; |
81 Mutex* DirtyCardQ_FL_lock = NULL; |
78 Mutex* DirtyCardQ_FL_lock = NULL; |
82 Monitor* DirtyCardQ_CBL_mon = NULL; |
79 Monitor* DirtyCardQ_CBL_mon = NULL; |
92 Mutex* DirectivesStack_lock = NULL; |
89 Mutex* DirectivesStack_lock = NULL; |
93 Mutex* MultiArray_lock = NULL; |
90 Mutex* MultiArray_lock = NULL; |
94 Monitor* Terminator_lock = NULL; |
91 Monitor* Terminator_lock = NULL; |
95 Monitor* BeforeExit_lock = NULL; |
92 Monitor* BeforeExit_lock = NULL; |
96 Monitor* Notify_lock = NULL; |
93 Monitor* Notify_lock = NULL; |
97 Monitor* Interrupt_lock = NULL; |
|
98 Monitor* ProfileVM_lock = NULL; |
|
99 Mutex* ProfilePrint_lock = NULL; |
94 Mutex* ProfilePrint_lock = NULL; |
100 Mutex* ExceptionCache_lock = NULL; |
95 Mutex* ExceptionCache_lock = NULL; |
101 Monitor* ObjAllocPost_lock = NULL; |
|
102 Mutex* OsrList_lock = NULL; |
96 Mutex* OsrList_lock = NULL; |
103 |
97 |
104 #ifndef PRODUCT |
98 #ifndef PRODUCT |
105 Mutex* FullGCALot_lock = NULL; |
99 Mutex* FullGCALot_lock = NULL; |
106 #endif |
100 #endif |
182 if (UseConcMarkSweepGC || UseG1GC) { |
176 if (UseConcMarkSweepGC || UseG1GC) { |
183 def(FullGCCount_lock , Monitor, leaf, true, Monitor::_safepoint_check_never); // in support of ExplicitGCInvokesConcurrent |
177 def(FullGCCount_lock , Monitor, leaf, true, Monitor::_safepoint_check_never); // in support of ExplicitGCInvokesConcurrent |
184 } |
178 } |
185 if (UseG1GC) { |
179 if (UseG1GC) { |
186 |
180 |
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); |
181 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); |
182 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); |
183 def(Shared_SATB_Q_lock , Mutex, nonleaf, true, Monitor::_safepoint_check_never); |
192 |
184 |
193 def(DirtyCardQ_FL_lock , Mutex , special, true, Monitor::_safepoint_check_never); |
185 def(DirtyCardQ_FL_lock , Mutex , special, true, Monitor::_safepoint_check_never); |
204 def(StringDedupTable_lock , Mutex , leaf, true, Monitor::_safepoint_check_never); |
196 def(StringDedupTable_lock , Mutex , leaf, true, Monitor::_safepoint_check_never); |
205 } |
197 } |
206 def(ParGCRareEvent_lock , Mutex , leaf , true, Monitor::_safepoint_check_sometimes); |
198 def(ParGCRareEvent_lock , Mutex , leaf , true, Monitor::_safepoint_check_sometimes); |
207 def(DerivedPointerTableGC_lock , Mutex, leaf, true, Monitor::_safepoint_check_never); |
199 def(DerivedPointerTableGC_lock , Mutex, leaf, true, Monitor::_safepoint_check_never); |
208 def(CodeCache_lock , Mutex , special, true, Monitor::_safepoint_check_never); |
200 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); |
201 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. |
202 def(OopMapCacheAlloc_lock , Mutex, leaf, true, Monitor::_safepoint_check_always); // used for oop_map_cache allocation. |
212 |
203 |
213 def(Patching_lock , Mutex , special, true, Monitor::_safepoint_check_never); // used for safepointing and code patching. |
204 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 |
205 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. |
206 def(JmethodIdCreation_lock , Mutex , leaf, true, Monitor::_safepoint_check_always); // used for creating jmethodIDs. |
217 |
207 |
218 def(SystemDictionary_lock , Monitor, leaf, true, Monitor::_safepoint_check_always); // lookups done by VM thread |
208 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); |
209 def(PackageTable_lock , Mutex , leaf, false, Monitor::_safepoint_check_always); |
265 def(CompileStatistics_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); |
255 def(CompileStatistics_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); |
266 def(DirectivesStack_lock , Mutex , special, true, Monitor::_safepoint_check_never); |
256 def(DirectivesStack_lock , Mutex , special, true, Monitor::_safepoint_check_never); |
267 def(MultiArray_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // locks SymbolTable_lock |
257 def(MultiArray_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // locks SymbolTable_lock |
268 |
258 |
269 def(JvmtiThreadState_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // Used by JvmtiThreadState/JvmtiEventController |
259 def(JvmtiThreadState_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // Used by JvmtiThreadState/JvmtiEventController |
270 def(JvmtiPendingEvent_lock , Monitor, nonleaf, false, Monitor::_safepoint_check_never); // Used by JvmtiCodeBlobEvents |
|
271 def(Management_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // used for JVM management |
260 def(Management_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // used for JVM management |
272 |
261 |
273 def(Compile_lock , Mutex , nonleaf+3, true, Monitor::_safepoint_check_sometimes); |
262 def(Compile_lock , Mutex , nonleaf+3, true, Monitor::_safepoint_check_sometimes); |
274 def(MethodData_lock , Mutex , nonleaf+3, false, Monitor::_safepoint_check_always); |
263 def(MethodData_lock , Mutex , nonleaf+3, false, Monitor::_safepoint_check_always); |
275 def(TouchedMethodLog_lock , Mutex , nonleaf+3, false, Monitor::_safepoint_check_always); |
264 def(TouchedMethodLog_lock , Mutex , nonleaf+3, false, Monitor::_safepoint_check_always); |
276 |
265 |
277 def(MethodCompileQueue_lock , Monitor, nonleaf+4, true, Monitor::_safepoint_check_always); |
266 def(MethodCompileQueue_lock , Monitor, nonleaf+4, true, Monitor::_safepoint_check_always); |
278 def(Debug2_lock , Mutex , nonleaf+4, true, Monitor::_safepoint_check_never); |
267 def(Debug2_lock , Mutex , nonleaf+4, true, Monitor::_safepoint_check_never); |
279 def(Debug3_lock , Mutex , nonleaf+4, true, Monitor::_safepoint_check_never); |
268 def(Debug3_lock , Mutex , nonleaf+4, true, Monitor::_safepoint_check_never); |
280 def(ProfileVM_lock , Monitor, special, false, Monitor::_safepoint_check_never); // used for profiling of the VMThread |
|
281 def(CompileThread_lock , Monitor, nonleaf+5, false, Monitor::_safepoint_check_always); |
269 def(CompileThread_lock , Monitor, nonleaf+5, false, Monitor::_safepoint_check_always); |
282 def(PeriodicTask_lock , Monitor, nonleaf+5, true, Monitor::_safepoint_check_sometimes); |
270 def(PeriodicTask_lock , Monitor, nonleaf+5, true, Monitor::_safepoint_check_sometimes); |
283 if (WhiteBoxAPI) { |
271 if (WhiteBoxAPI) { |
284 def(Compilation_lock , Monitor, leaf, false, Monitor::_safepoint_check_never); |
272 def(Compilation_lock , Monitor, leaf, false, Monitor::_safepoint_check_never); |
285 } |
273 } |