< prev index next >

src/hotspot/share/runtime/mutexLocker.cpp

Print this page




  42 Monitor* SystemDictionary_lock        = NULL;
  43 Mutex*   ProtectionDomainSet_lock     = NULL;
  44 Mutex*   SharedDictionary_lock        = NULL;
  45 Mutex*   Module_lock                  = NULL;
  46 Mutex*   CompiledIC_lock              = NULL;
  47 Mutex*   InlineCacheBuffer_lock       = NULL;
  48 Mutex*   VMStatistic_lock             = NULL;
  49 Mutex*   JNIGlobalAlloc_lock          = NULL;
  50 Mutex*   JNIGlobalActive_lock         = NULL;
  51 Mutex*   JNIWeakAlloc_lock            = NULL;
  52 Mutex*   JNIWeakActive_lock           = NULL;
  53 Mutex*   StringTableWeakAlloc_lock    = NULL;
  54 Mutex*   StringTableWeakActive_lock   = NULL;
  55 Mutex*   JNIHandleBlockFreeList_lock  = NULL;
  56 Mutex*   VMGlobalAlloc_lock           = NULL;
  57 Mutex*   VMGlobalActive_lock          = NULL;
  58 Mutex*   VMWeakAlloc_lock             = NULL;
  59 Mutex*   VMWeakActive_lock            = NULL;
  60 Mutex*   ResolvedMethodTableWeakAlloc_lock  = NULL;
  61 Mutex*   ResolvedMethodTableWeakActive_lock = NULL;


  62 Mutex*   JmethodIdCreation_lock       = NULL;
  63 Mutex*   JfieldIdCreation_lock        = NULL;
  64 Monitor* JNICritical_lock             = NULL;
  65 Mutex*   JvmtiThreadState_lock        = NULL;
  66 Monitor* Heap_lock                    = NULL;
  67 Mutex*   ExpandHeap_lock              = NULL;
  68 Mutex*   AdapterHandlerLibrary_lock   = NULL;
  69 Mutex*   SignatureHandlerLibrary_lock = NULL;
  70 Mutex*   VtableStubs_lock             = NULL;
  71 Mutex*   SymbolArena_lock             = NULL;
  72 Monitor* StringDedupQueue_lock        = NULL;
  73 Mutex*   StringDedupTable_lock        = NULL;
  74 Monitor* CodeCache_lock               = NULL;
  75 Mutex*   MethodData_lock              = NULL;
  76 Mutex*   TouchedMethodLog_lock        = NULL;
  77 Mutex*   RetData_lock                 = NULL;
  78 Monitor* VMOperationQueue_lock        = NULL;
  79 Monitor* VMOperationRequest_lock      = NULL;
  80 Monitor* SerializePage_lock           = NULL;
  81 Monitor* Threads_lock                 = NULL;


 210 }
 211 
 212 // Using Padded subclasses to prevent false sharing of these global monitors and mutexes.
 213 void mutex_init() {
 214   def(tty_lock                     , PaddedMutex  , tty,         true,  Monitor::_safepoint_check_never);      // allow to lock in VM
 215 
 216   def(CGC_lock                     , PaddedMonitor, special,     true,  Monitor::_safepoint_check_never);      // coordinate between fore- and background GC
 217   def(STS_lock                     , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);
 218 
 219   def(VMGlobalAlloc_lock           , PaddedMutex  , oopstorage,  true,  Monitor::_safepoint_check_never);
 220   def(VMGlobalActive_lock          , PaddedMutex  , oopstorage-1,true,  Monitor::_safepoint_check_never);
 221 
 222   def(VMWeakAlloc_lock             , PaddedMutex  , oopstorage,  true,  Monitor::_safepoint_check_never);
 223   def(VMWeakActive_lock            , PaddedMutex  , oopstorage-1,true,  Monitor::_safepoint_check_never);
 224 
 225   def(StringTableWeakAlloc_lock    , PaddedMutex  , oopstorage,  true,  Monitor::_safepoint_check_never);
 226   def(StringTableWeakActive_lock   , PaddedMutex  , oopstorage-1,true,  Monitor::_safepoint_check_never);
 227 
 228   def(ResolvedMethodTableWeakAlloc_lock    , PaddedMutex  , oopstorage,   true,  Monitor::_safepoint_check_never);
 229   def(ResolvedMethodTableWeakActive_lock   , PaddedMutex  , oopstorage-1, true,  Monitor::_safepoint_check_never);



 230 
 231   def(FullGCCount_lock             , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);      // in support of ExplicitGCInvokesConcurrent
 232   if (UseG1GC) {
 233     def(DirtyCardQ_CBL_mon         , PaddedMonitor, access,      true,  Monitor::_safepoint_check_never);
 234     def(Shared_DirtyCardQ_lock     , PaddedMutex  , access + 1,  true,  Monitor::_safepoint_check_never);
 235 
 236     def(FreeList_lock              , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 237     def(OldSets_lock               , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 238     def(RootRegionScan_lock        , PaddedMonitor, leaf     ,   true,  Monitor::_safepoint_check_never);
 239 
 240     def(StringDedupQueue_lock      , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);
 241     def(StringDedupTable_lock      , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
 242 
 243     def(MarkStackFreeList_lock     , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 244     def(MarkStackChunkList_lock    , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 245 
 246     def(MonitoringSupport_lock     , PaddedMutex  , native   ,   true,  Monitor::_safepoint_check_never);      // used for serviceability monitoring support
 247   }
 248   if (UseShenandoahGC) {
 249     def(StringDedupQueue_lock      , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);




  42 Monitor* SystemDictionary_lock        = NULL;
  43 Mutex*   ProtectionDomainSet_lock     = NULL;
  44 Mutex*   SharedDictionary_lock        = NULL;
  45 Mutex*   Module_lock                  = NULL;
  46 Mutex*   CompiledIC_lock              = NULL;
  47 Mutex*   InlineCacheBuffer_lock       = NULL;
  48 Mutex*   VMStatistic_lock             = NULL;
  49 Mutex*   JNIGlobalAlloc_lock          = NULL;
  50 Mutex*   JNIGlobalActive_lock         = NULL;
  51 Mutex*   JNIWeakAlloc_lock            = NULL;
  52 Mutex*   JNIWeakActive_lock           = NULL;
  53 Mutex*   StringTableWeakAlloc_lock    = NULL;
  54 Mutex*   StringTableWeakActive_lock   = NULL;
  55 Mutex*   JNIHandleBlockFreeList_lock  = NULL;
  56 Mutex*   VMGlobalAlloc_lock           = NULL;
  57 Mutex*   VMGlobalActive_lock          = NULL;
  58 Mutex*   VMWeakAlloc_lock             = NULL;
  59 Mutex*   VMWeakActive_lock            = NULL;
  60 Mutex*   ResolvedMethodTableWeakAlloc_lock  = NULL;
  61 Mutex*   ResolvedMethodTableWeakActive_lock = NULL;
  62 Mutex*   NMethodKeepaliveAlloc_lock   = NULL;
  63 Mutex*   NMethodKeepaliveActive_lock  = NULL;
  64 Mutex*   JmethodIdCreation_lock       = NULL;
  65 Mutex*   JfieldIdCreation_lock        = NULL;
  66 Monitor* JNICritical_lock             = NULL;
  67 Mutex*   JvmtiThreadState_lock        = NULL;
  68 Monitor* Heap_lock                    = NULL;
  69 Mutex*   ExpandHeap_lock              = NULL;
  70 Mutex*   AdapterHandlerLibrary_lock   = NULL;
  71 Mutex*   SignatureHandlerLibrary_lock = NULL;
  72 Mutex*   VtableStubs_lock             = NULL;
  73 Mutex*   SymbolArena_lock             = NULL;
  74 Monitor* StringDedupQueue_lock        = NULL;
  75 Mutex*   StringDedupTable_lock        = NULL;
  76 Monitor* CodeCache_lock               = NULL;
  77 Mutex*   MethodData_lock              = NULL;
  78 Mutex*   TouchedMethodLog_lock        = NULL;
  79 Mutex*   RetData_lock                 = NULL;
  80 Monitor* VMOperationQueue_lock        = NULL;
  81 Monitor* VMOperationRequest_lock      = NULL;
  82 Monitor* SerializePage_lock           = NULL;
  83 Monitor* Threads_lock                 = NULL;


 212 }
 213 
 214 // Using Padded subclasses to prevent false sharing of these global monitors and mutexes.
 215 void mutex_init() {
 216   def(tty_lock                     , PaddedMutex  , tty,         true,  Monitor::_safepoint_check_never);      // allow to lock in VM
 217 
 218   def(CGC_lock                     , PaddedMonitor, special,     true,  Monitor::_safepoint_check_never);      // coordinate between fore- and background GC
 219   def(STS_lock                     , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);
 220 
 221   def(VMGlobalAlloc_lock           , PaddedMutex  , oopstorage,  true,  Monitor::_safepoint_check_never);
 222   def(VMGlobalActive_lock          , PaddedMutex  , oopstorage-1,true,  Monitor::_safepoint_check_never);
 223 
 224   def(VMWeakAlloc_lock             , PaddedMutex  , oopstorage,  true,  Monitor::_safepoint_check_never);
 225   def(VMWeakActive_lock            , PaddedMutex  , oopstorage-1,true,  Monitor::_safepoint_check_never);
 226 
 227   def(StringTableWeakAlloc_lock    , PaddedMutex  , oopstorage,  true,  Monitor::_safepoint_check_never);
 228   def(StringTableWeakActive_lock   , PaddedMutex  , oopstorage-1,true,  Monitor::_safepoint_check_never);
 229 
 230   def(ResolvedMethodTableWeakAlloc_lock    , PaddedMutex  , oopstorage,   true,  Monitor::_safepoint_check_never);
 231   def(ResolvedMethodTableWeakActive_lock   , PaddedMutex  , oopstorage-1, true,  Monitor::_safepoint_check_never);
 232 
 233   def(NMethodKeepaliveAlloc_lock   , PaddedMutex  , oopstorage,   true,  Monitor::_safepoint_check_never);
 234   def(NMethodKeepaliveActive_lock  , PaddedMutex  , oopstorage-1, true,  Monitor::_safepoint_check_never);
 235 
 236   def(FullGCCount_lock             , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);      // in support of ExplicitGCInvokesConcurrent
 237   if (UseG1GC) {
 238     def(DirtyCardQ_CBL_mon         , PaddedMonitor, access,      true,  Monitor::_safepoint_check_never);
 239     def(Shared_DirtyCardQ_lock     , PaddedMutex  , access + 1,  true,  Monitor::_safepoint_check_never);
 240 
 241     def(FreeList_lock              , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 242     def(OldSets_lock               , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 243     def(RootRegionScan_lock        , PaddedMonitor, leaf     ,   true,  Monitor::_safepoint_check_never);
 244 
 245     def(StringDedupQueue_lock      , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);
 246     def(StringDedupTable_lock      , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
 247 
 248     def(MarkStackFreeList_lock     , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 249     def(MarkStackChunkList_lock    , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 250 
 251     def(MonitoringSupport_lock     , PaddedMutex  , native   ,   true,  Monitor::_safepoint_check_never);      // used for serviceability monitoring support
 252   }
 253   if (UseShenandoahGC) {
 254     def(StringDedupQueue_lock      , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);


< prev index next >