< prev index next >

src/hotspot/share/runtime/mutexLocker.cpp

Print this page

 37 // set at JVM startup-time, they should never be subsequently mutated.
 38 // Instead of using pointers to malloc()ed monitors and mutexes we should consider
 39 // eliminating the indirection and using instances instead.
 40 // Consider using GCC's __read_mostly.
 41 
 42 Mutex*   Patching_lock                = NULL;
 43 Mutex*   CompiledMethod_lock          = NULL;
 44 Monitor* SystemDictionary_lock        = NULL;
 45 Mutex*   SharedDictionary_lock        = NULL;
 46 Monitor* ClassInitError_lock          = NULL;
 47 Mutex*   Module_lock                  = NULL;
 48 Mutex*   CompiledIC_lock              = NULL;
 49 Mutex*   InlineCacheBuffer_lock       = NULL;
 50 Mutex*   VMStatistic_lock             = NULL;
 51 Mutex*   JNIHandleBlockFreeList_lock  = NULL;
 52 Mutex*   JmethodIdCreation_lock       = NULL;
 53 Mutex*   JfieldIdCreation_lock        = NULL;
 54 Monitor* JNICritical_lock             = NULL;
 55 Mutex*   JvmtiThreadState_lock        = NULL;
 56 Monitor* EscapeBarrier_lock           = NULL;

 57 Monitor* Heap_lock                    = NULL;
 58 Mutex*   ExpandHeap_lock              = NULL;
 59 Mutex*   AdapterHandlerLibrary_lock   = NULL;
 60 Mutex*   SignatureHandlerLibrary_lock = NULL;
 61 Mutex*   VtableStubs_lock             = NULL;
 62 Mutex*   SymbolArena_lock             = NULL;
 63 Monitor* StringDedup_lock             = NULL;
 64 Mutex*   StringDedupIntern_lock       = NULL;
 65 Monitor* CodeCache_lock               = NULL;
 66 Monitor* CodeSweeper_lock             = NULL;
 67 Mutex*   MethodData_lock              = NULL;
 68 Mutex*   TouchedMethodLog_lock        = NULL;
 69 Mutex*   RetData_lock                 = NULL;
 70 Monitor* VMOperation_lock             = NULL;
 71 Monitor* Threads_lock                 = NULL;
 72 Mutex*   NonJavaThreadsList_lock      = NULL;
 73 Mutex*   NonJavaThreadsListSync_lock  = NULL;
 74 Monitor* CGC_lock                     = NULL;
 75 Monitor* STS_lock                     = NULL;
 76 Monitor* G1OldGCCount_lock            = NULL;

271   def(NonJavaThreadsList_lock      , PaddedMutex,   nosafepoint-1,  true);
272   def(NonJavaThreadsListSync_lock  , PaddedMutex,   nosafepoint,    true);
273 
274   def(RetData_lock                 , PaddedMutex  , safepoint,      false);
275   def(Terminator_lock              , PaddedMonitor, safepoint,      true);
276   def(InitCompleted_lock           , PaddedMonitor, nosafepoint,    true);
277   def(Notify_lock                  , PaddedMonitor, safepoint,      true);
278   def(AdapterHandlerLibrary_lock   , PaddedMutex  , safepoint,      true);
279 
280   def(Heap_lock                    , PaddedMonitor, safepoint,      false); // Doesn't safepoint check during termination.
281   def(JfieldIdCreation_lock        , PaddedMutex  , safepoint,      true);  // jfieldID, Used in VM_Operation
282 
283   def(CompiledIC_lock              , PaddedMutex  , nosafepoint,    true);  // locks VtableStubs_lock, InlineCacheBuffer_lock
284   def(MethodCompileQueue_lock      , PaddedMonitor, safepoint,      false);
285   def(CompileStatistics_lock       , PaddedMutex  , safepoint,      false);
286   def(DirectivesStack_lock         , PaddedMutex  , nosafepoint,    true);
287   def(MultiArray_lock              , PaddedMutex  , safepoint,      false);
288 
289   def(JvmtiThreadState_lock        , PaddedMutex  , safepoint,      false); // Used by JvmtiThreadState/JvmtiEventController
290   def(EscapeBarrier_lock           , PaddedMonitor, nosafepoint,    true);  // Used to synchronize object reallocation/relocking triggered by JVMTI

291   def(Management_lock              , PaddedMutex  , safepoint,      false); // used for JVM management
292 
293   def(ConcurrentGCBreakpoints_lock , PaddedMonitor, safepoint,      true);
294   def(MethodData_lock              , PaddedMutex  , safepoint,      false);
295   def(TouchedMethodLog_lock        , PaddedMutex  , safepoint,      false);
296 
297   def(CompileThread_lock           , PaddedMonitor, safepoint,      false);
298   def(PeriodicTask_lock            , PaddedMonitor, safepoint,      true);
299   def(RedefineClasses_lock         , PaddedMonitor, safepoint,      true);
300   def(Verify_lock                  , PaddedMutex,   safepoint,      true);
301 
302   if (WhiteBoxAPI) {
303     def(Compilation_lock           , PaddedMonitor, nosafepoint,    true);
304   }
305 
306 #if INCLUDE_JFR
307   def(JfrBuffer_lock               , PaddedMutex  , nosafepoint,       true);
308   def(JfrStacktrace_lock           , PaddedMutex  , stackwatermark-1,  true);
309   def(JfrThreadSampler_lock        , PaddedMonitor, nosafepoint,       true);
310 #endif

 37 // set at JVM startup-time, they should never be subsequently mutated.
 38 // Instead of using pointers to malloc()ed monitors and mutexes we should consider
 39 // eliminating the indirection and using instances instead.
 40 // Consider using GCC's __read_mostly.
 41 
 42 Mutex*   Patching_lock                = NULL;
 43 Mutex*   CompiledMethod_lock          = NULL;
 44 Monitor* SystemDictionary_lock        = NULL;
 45 Mutex*   SharedDictionary_lock        = NULL;
 46 Monitor* ClassInitError_lock          = NULL;
 47 Mutex*   Module_lock                  = NULL;
 48 Mutex*   CompiledIC_lock              = NULL;
 49 Mutex*   InlineCacheBuffer_lock       = NULL;
 50 Mutex*   VMStatistic_lock             = NULL;
 51 Mutex*   JNIHandleBlockFreeList_lock  = NULL;
 52 Mutex*   JmethodIdCreation_lock       = NULL;
 53 Mutex*   JfieldIdCreation_lock        = NULL;
 54 Monitor* JNICritical_lock             = NULL;
 55 Mutex*   JvmtiThreadState_lock        = NULL;
 56 Monitor* EscapeBarrier_lock           = NULL;
 57 Monitor* JvmtiVTMT_lock               = NULL;
 58 Monitor* Heap_lock                    = NULL;
 59 Mutex*   ExpandHeap_lock              = NULL;
 60 Mutex*   AdapterHandlerLibrary_lock   = NULL;
 61 Mutex*   SignatureHandlerLibrary_lock = NULL;
 62 Mutex*   VtableStubs_lock             = NULL;
 63 Mutex*   SymbolArena_lock             = NULL;
 64 Monitor* StringDedup_lock             = NULL;
 65 Mutex*   StringDedupIntern_lock       = NULL;
 66 Monitor* CodeCache_lock               = NULL;
 67 Monitor* CodeSweeper_lock             = NULL;
 68 Mutex*   MethodData_lock              = NULL;
 69 Mutex*   TouchedMethodLog_lock        = NULL;
 70 Mutex*   RetData_lock                 = NULL;
 71 Monitor* VMOperation_lock             = NULL;
 72 Monitor* Threads_lock                 = NULL;
 73 Mutex*   NonJavaThreadsList_lock      = NULL;
 74 Mutex*   NonJavaThreadsListSync_lock  = NULL;
 75 Monitor* CGC_lock                     = NULL;
 76 Monitor* STS_lock                     = NULL;
 77 Monitor* G1OldGCCount_lock            = NULL;

272   def(NonJavaThreadsList_lock      , PaddedMutex,   nosafepoint-1,  true);
273   def(NonJavaThreadsListSync_lock  , PaddedMutex,   nosafepoint,    true);
274 
275   def(RetData_lock                 , PaddedMutex  , safepoint,      false);
276   def(Terminator_lock              , PaddedMonitor, safepoint,      true);
277   def(InitCompleted_lock           , PaddedMonitor, nosafepoint,    true);
278   def(Notify_lock                  , PaddedMonitor, safepoint,      true);
279   def(AdapterHandlerLibrary_lock   , PaddedMutex  , safepoint,      true);
280 
281   def(Heap_lock                    , PaddedMonitor, safepoint,      false); // Doesn't safepoint check during termination.
282   def(JfieldIdCreation_lock        , PaddedMutex  , safepoint,      true);  // jfieldID, Used in VM_Operation
283 
284   def(CompiledIC_lock              , PaddedMutex  , nosafepoint,    true);  // locks VtableStubs_lock, InlineCacheBuffer_lock
285   def(MethodCompileQueue_lock      , PaddedMonitor, safepoint,      false);
286   def(CompileStatistics_lock       , PaddedMutex  , safepoint,      false);
287   def(DirectivesStack_lock         , PaddedMutex  , nosafepoint,    true);
288   def(MultiArray_lock              , PaddedMutex  , safepoint,      false);
289 
290   def(JvmtiThreadState_lock        , PaddedMutex  , safepoint,      false); // Used by JvmtiThreadState/JvmtiEventController
291   def(EscapeBarrier_lock           , PaddedMonitor, nosafepoint,    true);  // Used to synchronize object reallocation/relocking triggered by JVMTI
292   def(JvmtiVTMT_lock               , PaddedMonitor, nosafepoint,    true);  // used for Virtual Thread Mount Transition management
293   def(Management_lock              , PaddedMutex  , safepoint,      false); // used for JVM management
294 
295   def(ConcurrentGCBreakpoints_lock , PaddedMonitor, safepoint,      true);
296   def(MethodData_lock              , PaddedMutex  , safepoint,      false);
297   def(TouchedMethodLog_lock        , PaddedMutex  , safepoint,      false);
298 
299   def(CompileThread_lock           , PaddedMonitor, safepoint,      false);
300   def(PeriodicTask_lock            , PaddedMonitor, safepoint,      true);
301   def(RedefineClasses_lock         , PaddedMonitor, safepoint,      true);
302   def(Verify_lock                  , PaddedMutex,   safepoint,      true);
303 
304   if (WhiteBoxAPI) {
305     def(Compilation_lock           , PaddedMonitor, nosafepoint,    true);
306   }
307 
308 #if INCLUDE_JFR
309   def(JfrBuffer_lock               , PaddedMutex  , nosafepoint,       true);
310   def(JfrStacktrace_lock           , PaddedMutex  , stackwatermark-1,  true);
311   def(JfrThreadSampler_lock        , PaddedMonitor, nosafepoint,       true);
312 #endif
< prev index next >