53 Monitor* Heap_lock = NULL;
54 Mutex* ExpandHeap_lock = NULL;
55 Mutex* AdapterHandlerLibrary_lock = NULL;
56 Mutex* SignatureHandlerLibrary_lock = NULL;
57 Mutex* VtableStubs_lock = NULL;
58 Mutex* SymbolTable_lock = NULL;
59 Mutex* StringTable_lock = NULL;
60 Monitor* StringDedupQueue_lock = NULL;
61 Mutex* StringDedupTable_lock = NULL;
62 Monitor* CodeCache_lock = NULL;
63 Mutex* MethodData_lock = NULL;
64 Mutex* TouchedMethodLog_lock = NULL;
65 Mutex* RetData_lock = NULL;
66 Monitor* VMOperationQueue_lock = NULL;
67 Monitor* VMOperationRequest_lock = NULL;
68 Monitor* Safepoint_lock = NULL;
69 Monitor* SerializePage_lock = NULL;
70 Monitor* Threads_lock = NULL;
71 Monitor* CGC_lock = NULL;
72 Monitor* STS_lock = NULL;
73 Monitor* SLT_lock = NULL;
74 Monitor* FullGCCount_lock = NULL;
75 Mutex* SATB_Q_FL_lock = NULL;
76 Monitor* SATB_Q_CBL_mon = NULL;
77 Mutex* Shared_SATB_Q_lock = NULL;
78 Mutex* DirtyCardQ_FL_lock = NULL;
79 Monitor* DirtyCardQ_CBL_mon = NULL;
80 Mutex* Shared_DirtyCardQ_lock = NULL;
81 Mutex* ParGCRareEvent_lock = NULL;
82 Mutex* DerivedPointerTableGC_lock = NULL;
83 Mutex* Compile_lock = NULL;
84 Monitor* MethodCompileQueue_lock = NULL;
85 Monitor* CompileThread_lock = NULL;
86 Monitor* Compilation_lock = NULL;
87 Mutex* CompileTaskAlloc_lock = NULL;
88 Mutex* CompileStatistics_lock = NULL;
89 Mutex* DirectivesStack_lock = NULL;
90 Mutex* MultiArray_lock = NULL;
91 Monitor* Terminator_lock = NULL;
92 Monitor* BeforeExit_lock = NULL;
93 Monitor* Notify_lock = NULL;
225 def(PerfDataMemAlloc_lock , Mutex , leaf, true, Monitor::_safepoint_check_always); // used for allocating PerfData memory for performance data
226 def(PerfDataManager_lock , Mutex , leaf, true, Monitor::_safepoint_check_always); // used for synchronized access to PerfDataManager resources
227
228 // CMS_modUnionTable_lock leaf
229 // CMS_bitMap_lock leaf 1
230 // CMS_freeList_lock leaf 2
231
232 def(Safepoint_lock , Monitor, safepoint, true, Monitor::_safepoint_check_sometimes); // locks SnippetCache_lock/Threads_lock
233
234 def(Threads_lock , Monitor, barrier, true, Monitor::_safepoint_check_sometimes);
235
236 def(VMOperationQueue_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_sometimes); // VM_thread allowed to block on these
237 def(VMOperationRequest_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_sometimes);
238 def(RetData_lock , Mutex , nonleaf, false, Monitor::_safepoint_check_always);
239 def(Terminator_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_sometimes);
240 def(VtableStubs_lock , Mutex , nonleaf, true, Monitor::_safepoint_check_always);
241 def(Notify_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_always);
242 def(JNIGlobalHandle_lock , Mutex , nonleaf, true, Monitor::_safepoint_check_always); // locks JNIHandleBlockFreeList_lock
243 def(JNICritical_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_always); // used for JNI critical regions
244 def(AdapterHandlerLibrary_lock , Mutex , nonleaf, true, Monitor::_safepoint_check_always);
245 if (UseConcMarkSweepGC) {
246 def(SLT_lock , Monitor, nonleaf, false, Monitor::_safepoint_check_never); // used in CMS GC for locking PLL lock
247 }
248
249 def(Heap_lock , Monitor, nonleaf+1, false, Monitor::_safepoint_check_sometimes);
250 def(JfieldIdCreation_lock , Mutex , nonleaf+1, true, Monitor::_safepoint_check_always); // jfieldID, Used in VM_Operation
251 def(MemberNameTable_lock , Mutex , nonleaf+1, false, Monitor::_safepoint_check_always); // Used to protect MemberNameTable
252
253 def(CompiledIC_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // locks VtableStubs_lock, InlineCacheBuffer_lock
254 def(CompileTaskAlloc_lock , Mutex , nonleaf+2, true, Monitor::_safepoint_check_always);
255 def(CompileStatistics_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always);
256 def(DirectivesStack_lock , Mutex , special, true, Monitor::_safepoint_check_never);
257 def(MultiArray_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // locks SymbolTable_lock
258
259 def(JvmtiThreadState_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // Used by JvmtiThreadState/JvmtiEventController
260 def(Management_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // used for JVM management
261
262 def(Compile_lock , Mutex , nonleaf+3, true, Monitor::_safepoint_check_sometimes);
263 def(MethodData_lock , Mutex , nonleaf+3, false, Monitor::_safepoint_check_always);
264 def(TouchedMethodLog_lock , Mutex , nonleaf+3, false, Monitor::_safepoint_check_always);
265
266 def(MethodCompileQueue_lock , Monitor, nonleaf+4, true, Monitor::_safepoint_check_always);
267 def(Debug2_lock , Mutex , nonleaf+4, true, Monitor::_safepoint_check_never);
|
53 Monitor* Heap_lock = NULL;
54 Mutex* ExpandHeap_lock = NULL;
55 Mutex* AdapterHandlerLibrary_lock = NULL;
56 Mutex* SignatureHandlerLibrary_lock = NULL;
57 Mutex* VtableStubs_lock = NULL;
58 Mutex* SymbolTable_lock = NULL;
59 Mutex* StringTable_lock = NULL;
60 Monitor* StringDedupQueue_lock = NULL;
61 Mutex* StringDedupTable_lock = NULL;
62 Monitor* CodeCache_lock = NULL;
63 Mutex* MethodData_lock = NULL;
64 Mutex* TouchedMethodLog_lock = NULL;
65 Mutex* RetData_lock = NULL;
66 Monitor* VMOperationQueue_lock = NULL;
67 Monitor* VMOperationRequest_lock = NULL;
68 Monitor* Safepoint_lock = NULL;
69 Monitor* SerializePage_lock = NULL;
70 Monitor* Threads_lock = NULL;
71 Monitor* CGC_lock = NULL;
72 Monitor* STS_lock = NULL;
73 Monitor* FullGCCount_lock = NULL;
74 Mutex* SATB_Q_FL_lock = NULL;
75 Monitor* SATB_Q_CBL_mon = NULL;
76 Mutex* Shared_SATB_Q_lock = NULL;
77 Mutex* DirtyCardQ_FL_lock = NULL;
78 Monitor* DirtyCardQ_CBL_mon = NULL;
79 Mutex* Shared_DirtyCardQ_lock = NULL;
80 Mutex* ParGCRareEvent_lock = NULL;
81 Mutex* DerivedPointerTableGC_lock = NULL;
82 Mutex* Compile_lock = NULL;
83 Monitor* MethodCompileQueue_lock = NULL;
84 Monitor* CompileThread_lock = NULL;
85 Monitor* Compilation_lock = NULL;
86 Mutex* CompileTaskAlloc_lock = NULL;
87 Mutex* CompileStatistics_lock = NULL;
88 Mutex* DirectivesStack_lock = NULL;
89 Mutex* MultiArray_lock = NULL;
90 Monitor* Terminator_lock = NULL;
91 Monitor* BeforeExit_lock = NULL;
92 Monitor* Notify_lock = NULL;
224 def(PerfDataMemAlloc_lock , Mutex , leaf, true, Monitor::_safepoint_check_always); // used for allocating PerfData memory for performance data
225 def(PerfDataManager_lock , Mutex , leaf, true, Monitor::_safepoint_check_always); // used for synchronized access to PerfDataManager resources
226
227 // CMS_modUnionTable_lock leaf
228 // CMS_bitMap_lock leaf 1
229 // CMS_freeList_lock leaf 2
230
231 def(Safepoint_lock , Monitor, safepoint, true, Monitor::_safepoint_check_sometimes); // locks SnippetCache_lock/Threads_lock
232
233 def(Threads_lock , Monitor, barrier, true, Monitor::_safepoint_check_sometimes);
234
235 def(VMOperationQueue_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_sometimes); // VM_thread allowed to block on these
236 def(VMOperationRequest_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_sometimes);
237 def(RetData_lock , Mutex , nonleaf, false, Monitor::_safepoint_check_always);
238 def(Terminator_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_sometimes);
239 def(VtableStubs_lock , Mutex , nonleaf, true, Monitor::_safepoint_check_always);
240 def(Notify_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_always);
241 def(JNIGlobalHandle_lock , Mutex , nonleaf, true, Monitor::_safepoint_check_always); // locks JNIHandleBlockFreeList_lock
242 def(JNICritical_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_always); // used for JNI critical regions
243 def(AdapterHandlerLibrary_lock , Mutex , nonleaf, true, Monitor::_safepoint_check_always);
244
245 def(Heap_lock , Monitor, nonleaf+1, false, Monitor::_safepoint_check_sometimes);
246 def(JfieldIdCreation_lock , Mutex , nonleaf+1, true, Monitor::_safepoint_check_always); // jfieldID, Used in VM_Operation
247 def(MemberNameTable_lock , Mutex , nonleaf+1, false, Monitor::_safepoint_check_always); // Used to protect MemberNameTable
248
249 def(CompiledIC_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // locks VtableStubs_lock, InlineCacheBuffer_lock
250 def(CompileTaskAlloc_lock , Mutex , nonleaf+2, true, Monitor::_safepoint_check_always);
251 def(CompileStatistics_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always);
252 def(DirectivesStack_lock , Mutex , special, true, Monitor::_safepoint_check_never);
253 def(MultiArray_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // locks SymbolTable_lock
254
255 def(JvmtiThreadState_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // Used by JvmtiThreadState/JvmtiEventController
256 def(Management_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // used for JVM management
257
258 def(Compile_lock , Mutex , nonleaf+3, true, Monitor::_safepoint_check_sometimes);
259 def(MethodData_lock , Mutex , nonleaf+3, false, Monitor::_safepoint_check_always);
260 def(TouchedMethodLog_lock , Mutex , nonleaf+3, false, Monitor::_safepoint_check_always);
261
262 def(MethodCompileQueue_lock , Monitor, nonleaf+4, true, Monitor::_safepoint_check_always);
263 def(Debug2_lock , Mutex , nonleaf+4, true, Monitor::_safepoint_check_never);
|