[资料] HotSpot中这么多的Mutex Locker知多少

william_ai 2011-09-07
类型名称描述
Mutex*Patching_loc a lock used to guard code patching of compiled code
Monitor*SystemDictionary_loc a lock on the system dictonary
Mutex*PackageTable_loc a lock on the class loader package table
Mutex*CompiledIC_loc a lock used to guard compiled IC patching and access
Mutex*InlineCacheBuffer_loc a lock used to guard the InlineCacheBuffer
Mutex*VMStatistic_loc a lock used to guard statistics count increment
Mutex*JNIGlobalHandle_loc a lock on creating JNI global handles
Mutex*JNIHandleBlockFreeList_loc a lock on the JNI handle block free list
Mutex*JNICachedItableIndex_loc a lock on caching an itable index during JNI invoke
Mutex*JmethodIdCreation_loc a lock on creating JNI method identifiers
Mutex*JfieldIdCreation_loc a lock on creating JNI static field identifiers
Monitor*JNICritical_loc a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in
Mutex*JvmtiThreadState_loc a lock on modification of JVMTI thread data
Monitor*JvmtiPendingEvent_loc a lock on the JVMTI pending events list
Monitor*Heap_loc a lock on the heap
Mutex*ExpandHeap_loc a lock on expanding the heap
Mutex*AdapterHandlerLibrary_loc a lock on the AdapterHandlerLibrary
Mutex*SignatureHandlerLibrary_loc a lock on the SignatureHandlerLibrary
Mutex*VtableStubs_loc a lock on the VtableStubs
Mutex*SymbolTable_loc a lock on the symbol table
Mutex*StringTable_loc a lock on the interned string table
Mutex*CodeCache_loc a lock on the CodeCache, rank is special, use MutexLockerEx
Mutex*MethodData_loc a lock on installation of method data
Mutex*RetData_loc a lock on installation of RetData inside method data
Mutex*DerivedPointerTableGC_loc a lock to protect the derived pointer table
Monitor*VMOperationQueue_loc a lock on queue of vm_operations waiting to execute
Monitor*VMOperationRequest_loc a lock on Threads waiting for a vm_operation to terminate
Monitor*Safepoint_loc a lock used by the safepoint abstraction
Monitor*Threads_loc a lock on the Threads table of active Java threads
Monitor*CGC_loc used for coordination between
Mutex*STS_init_loc coordinate initialization of SuspendibleThreadSets.
Monitor*SLT_loc used in CMS GC for acquiring PLL
Monitor*iCMS_loc CMS incremental mode start/stop notification
Monitor*FullGCCount_loc in support of "concurrent" full gc
Monitor*CMark_loc used for concurrent mark thread coordination
Mutex*CMRegionStack_loc used for protecting accesses to the CM region stack
Mutex*SATB_Q_FL_loc Protects SATB Q
Monitor*SATB_Q_CBL_mo Protects SATB Q
Mutex*Shared_SATB_Q_loc Lock protecting SATB
Mutex*DirtyCardQ_FL_loc Protects dirty card Q
Monitor*DirtyCardQ_CBL_mo Protects dirty card Q
Mutex*Shared_DirtyCardQ_loc Lock protecting dirty card
Mutex*ParGCRareEvent_loc Synchronizes various (rare) parallel GC ops.
Mutex*EvacFailureStack_loc guards the evac failure scan stack
Mutex*Compile_loc a lock held when Compilation is updating code (used to block CodeCache traversal, CHA updates, etc)
Monitor*MethodCompileQueue_loc a lock held when method compilations are enqueued, dequeued
Monitor*CompileThread_loc a lock held by compile threads during compilation system initialization
Mutex*CompileTaskAlloc_loc a lock held when CompileTasks are allocated
Mutex*CompileStatistics_loc a lock held when updating compilation statistics
Mutex*MultiArray_loc a lock used to guard allocation of multi-dim arrays
Monitor*Terminator_loc a lock used to guard termination of the vm
Monitor*BeforeExit_loc a lock used to guard cleanups and shutdown hooks
Monitor*Notify_loc a lock used to synchronize the start-up of the vm
Monitor*Interrupt_loc a lock used for condition variable mediated interrupt processing
Monitor*ProfileVM_loc a lock used for profiling the VMThread
Mutex*ProfilePrint_loc a lock used to serialize the printing of profiles
Mutex*ExceptionCache_loc a lock used to synchronize exception cache updates
Mutex*OsrList_loc a lock used to serialize access to OSR queues
Mutex*FullGCALot_loc a lock to make FullGCALot MT safe
Mutex*Debug1_loc A bunch of pre-allocated locks that can be used for tracing
Mutex*Debug2_loc down synchronization related bugs!
Mutex*Debug3_loc
Mutex*RawMonitor_loc
Mutex*PerfDataMemAlloc_loc a lock on the allocator for PerfData memory for performance data
Mutex*PerfDataManager_loc a long on access to PerfDataManager resources
Mutex*ParkerFreeList_loc
Mutex*OopMapCacheAlloc_loc protects allocation of oop_map caches
Mutex*FreeList_loc protects the free region list during safepoints
Monitor*SecondaryFreeList_loc protects the secondary free region list
Mutex*OldSets_loc protects the old region sets
Mutex*MMUTracker_loc protects the MMU
Mutex*HotCardCache_loc protects the hot card cache
Mutex*Management_loc a lock used to serialize JVM management
Monitor*Service_loc a lock used for service thread operation
RednaxelaFX 2011-09-07
Good!多谢!

能列一下你收集这些信息碰到的源码文件么?看看全不全。
我之前也整理了一份类似的列表,让我找找看放哪儿了…
william_ai 2011-09-07
awk '/extern/{a="|"$2"|"substr($3,0,length($3)-1)"|";for(i=5;i<=NF;i++){a=a" "$i};print a}' /home/jdk/install/openjdk/hotspot/src/share/vm/runtime/mutexLocker.hpp
从源码里cut出来的。在找还有没有别的locker。
RednaxelaFX 2011-09-07
嗯还有若干个不在那个文件里的。

随手搜一下能找到这些:
hotspot\src\os\linux\vm\osThread_linux.cpp:61:  _startThread_lock = new Monitor(Mutex::event, "startThread_lock", true);
hotspot\src\share\vm\compiler\compileBroker.hpp:62:    _lock = new Monitor(Mutex::nonleaf+2, "CompileTaskLock");
hotspot\src\share\vm\gc_implementation\g1\concurrentG1RefineThread.cpp:53:    _monitor = new Monitor(Mutex::nonleaf, "Refinement monitor", true);
hotspot\src\share\vm\gc_implementation\parallelScavenge\gcTaskManager.cpp:369:  _monitor = new Monitor(Mutex::barrier,                // rank
hotspot\src\share\vm\gc_implementation\parallelScavenge\gcTaskManager.cpp:905:      result = new Monitor(Mutex::barrier,                  // rank
hotspot\src\share\vm\gc_implementation\shared\concurrentGCThread.cpp:109:    _m             = new Monitor(Mutex::leaf,
hotspot\src\share\vm\runtime\mutexLocker.cpp:49:Monitor* SystemDictionary_lock        = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:59:Monitor* JNICritical_lock             = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:61:Monitor* JvmtiPendingEvent_lock       = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:62:Monitor* Heap_lock                    = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:72:Monitor* VMOperationQueue_lock        = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:73:Monitor* VMOperationRequest_lock      = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:74:Monitor* Safepoint_lock               = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:75:Monitor* SerializePage_lock           = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:76:Monitor* Threads_lock                 = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:77:Monitor* CGC_lock                     = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:79:Monitor* SLT_lock                     = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:80:Monitor* iCMS_lock                    = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:81:Monitor* FullGCCount_lock             = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:82:Monitor* CMark_lock                   = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:85:Monitor* SATB_Q_CBL_mon               = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:88:Monitor* DirtyCardQ_CBL_mon           = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:94:Monitor* MethodCompileQueue_lock      = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:95:Monitor* CompileThread_lock           = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:99:Monitor* Terminator_lock              = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:100:Monitor* BeforeExit_lock              = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:101:Monitor* Notify_lock                  = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:102:Monitor* Interrupt_lock               = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:103:Monitor* ProfileVM_lock               = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:106:Monitor* ObjAllocPost_lock            = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:124:Monitor* SecondaryFreeList_lock       = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:129:Monitor* GCTaskManager_lock           = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:132:Monitor* LowMemory_lock               = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:171:  def(CGC_lock                   , Monitor, special,     true ); // coordinate between fore- and background GC
hotspot\src\share\vm\runtime\mutexLocker.cpp:174:    def(iCMS_lock                  , Monitor, special,     true ); // CMS incremental mode start/stop notification
hotspot\src\share\vm\runtime\mutexLocker.cpp:177:    def(FullGCCount_lock           , Monitor, leaf,        true ); // in support of ExplicitGCInvokesConcurrent
hotspot\src\share\vm\runtime\mutexLocker.cpp:180:    def(CMark_lock                 , Monitor, nonleaf,     true ); // coordinate concurrent mark thread
hotspot\src\share\vm\runtime\mutexLocker.cpp:183:    def(SATB_Q_CBL_mon             , Monitor, nonleaf,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:187:    def(DirtyCardQ_CBL_mon         , Monitor, nonleaf,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:191:    def(SecondaryFreeList_lock     , Monitor, leaf     ,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:200:  def(Interrupt_lock               , Monitor, special,     true ); // used for interrupt processing
hotspot\src\share\vm\runtime\mutexLocker.cpp:205:  def(ObjAllocPost_lock            , Monitor, special,     false);
hotspot\src\share\vm\runtime\mutexLocker.cpp:206:  def(LowMemory_lock               , Monitor, special,     true ); // used for low memory detection
hotspot\src\share\vm\runtime\mutexLocker.cpp:209:  def(SystemDictionary_lock        , Monitor, leaf,        true ); // lookups done by VM thread
hotspot\src\share\vm\runtime\mutexLocker.cpp:225:  def(BeforeExit_lock              , Monitor, leaf,        true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:233:  def(Safepoint_lock               , Monitor, safepoint,   true ); // locks SnippetCache_lock/Threads_lock
hotspot\src\share\vm\runtime\mutexLocker.cpp:235:  def(Threads_lock                 , Monitor, barrier,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:237:  def(VMOperationQueue_lock        , Monitor, nonleaf,     true ); // VM_thread allowed to block on these
hotspot\src\share\vm\runtime\mutexLocker.cpp:238:  def(VMOperationRequest_lock      , Monitor, nonleaf,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:240:  def(Terminator_lock              , Monitor, nonleaf,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:242:  def(Notify_lock                  , Monitor, nonleaf,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:244:  def(JNICritical_lock             , Monitor, nonleaf,     true ); // used for JNI critical regions
hotspot\src\share\vm\runtime\mutexLocker.cpp:247:    def(SLT_lock                   , Monitor, nonleaf,     false );
hotspot\src\share\vm\runtime\mutexLocker.cpp:250:  def(Heap_lock                    , Monitor, nonleaf+1,   false);
hotspot\src\share\vm\runtime\mutexLocker.cpp:260:  def(JvmtiPendingEvent_lock       , Monitor, nonleaf,     false); // Used by JvmtiCodeBlobEvents
hotspot\src\share\vm\runtime\mutexLocker.cpp:266:  def(MethodCompileQueue_lock      , Monitor, nonleaf+4,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:269:  def(ProfileVM_lock               , Monitor, nonleaf+4,   false); // used for profiling of the VMThread
hotspot\src\share\vm\runtime\mutexLocker.cpp:270:  def(CompileThread_lock           , Monitor, nonleaf+5,   false );
hotspot\src\share\vm\runtime\mutexLocker.hpp:43:extern Monitor* SystemDictionary_lock;           // a lock on the system dictonary
hotspot\src\share\vm\runtime\mutexLocker.hpp:53:extern Monitor* JNICritical_lock;                // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in
hotspot\src\share\vm\runtime\mutexLocker.hpp:55:extern Monitor* JvmtiPendingEvent_lock;          // a lock on the JVMTI pending events list
hotspot\src\share\vm\runtime\mutexLocker.hpp:56:extern Monitor* Heap_lock;                       // a lock on the heap
hotspot\src\share\vm\runtime\mutexLocker.hpp:67:extern Monitor* VMOperationQueue_lock;           // a lock on queue of vm_operations waiting to execute
hotspot\src\share\vm\runtime\mutexLocker.hpp:68:extern Monitor* VMOperationRequest_lock;         // a lock on Threads waiting for a vm_operation to terminate
hotspot\src\share\vm\runtime\mutexLocker.hpp:69:extern Monitor* Safepoint_lock;                  // a lock used by the safepoint abstraction
hotspot\src\share\vm\runtime\mutexLocker.hpp:70:extern Monitor* Threads_lock;                    // a lock on the Threads table of active Java threads
hotspot\src\share\vm\runtime\mutexLocker.hpp:72:extern Monitor* CGC_lock;                        // used for coordination between
hotspot\src\share\vm\runtime\mutexLocker.hpp:75:extern Monitor* SLT_lock;                        // used in CMS GC for acquiring PLL
hotspot\src\share\vm\runtime\mutexLocker.hpp:76:extern Monitor* iCMS_lock;                       // CMS incremental mode start/stop notification
hotspot\src\share\vm\runtime\mutexLocker.hpp:77:extern Monitor* FullGCCount_lock;                // in support of "concurrent" full gc
hotspot\src\share\vm\runtime\mutexLocker.hpp:78:extern Monitor* CMark_lock;                      // used for concurrent mark thread coordination
hotspot\src\share\vm\runtime\mutexLocker.hpp:82:extern Monitor* SATB_Q_CBL_mon;                  // Protects SATB Q
hotspot\src\share\vm\runtime\mutexLocker.hpp:90:extern Monitor* DirtyCardQ_CBL_mon;              // Protects dirty card Q
hotspot\src\share\vm\runtime\mutexLocker.hpp:99:extern Monitor* MethodCompileQueue_lock;         // a lock held when method compilations are enqueued, dequeued
hotspot\src\share\vm\runtime\mutexLocker.hpp:100:extern Monitor* CompileThread_lock;              // a lock held by compile threads during compilation system initialization
hotspot\src\share\vm\runtime\mutexLocker.hpp:104:extern Monitor* Terminator_lock;                 // a lock used to guard termination of the vm
hotspot\src\share\vm\runtime\mutexLocker.hpp:105:extern Monitor* BeforeExit_lock;                 // a lock used to guard cleanups and shutdown hooks
hotspot\src\share\vm\runtime\mutexLocker.hpp:106:extern Monitor* Notify_lock;                     // a lock used to synchronize the start-up of the vm
hotspot\src\share\vm\runtime\mutexLocker.hpp:107:extern Monitor* Interrupt_lock;                  // a lock used for condition variable mediated interrupt processing
hotspot\src\share\vm\runtime\mutexLocker.hpp:108:extern Monitor* ProfileVM_lock;                  // a lock used for profiling the VMThread
hotspot\src\share\vm\runtime\mutexLocker.hpp:127:extern Monitor* SecondaryFreeList_lock;          // protects the secondary free region list
hotspot\src\share\vm\runtime\mutexLocker.hpp:134:extern Monitor* LowMemory_lock;                  // a lock used for low memory detection
hotspot\src\share\vm\runtime\thread.cpp:221:  _SR_lock = new Monitor(Mutex::suspend_resume, "SR_lock", true);
hotspot\src\share\vm\runtime\vmThread.cpp:225:  _terminate_lock = new Monitor(Mutex::safepoint, "VMThread::_terminate_lock", true);
hotspot\src\share\vm\runtime\vm_operations.cpp:392:  Monitor timer(Mutex::leaf, "VM_Exit timer", true);
hotspot\src\share\vm\shark\sharkCompiler.cpp:65:  _execution_engine_lock = new Monitor(Mutex::leaf, "SharkExecutionEngineLock");
hotspot\src\share\vm\utilities\workgroup.cpp:44:  _monitor = new Monitor(/* priority */       Mutex::leaf,

hotspot\src\os\linux\vm\osThread_linux.cpp:61:  _startThread_lock = new Monitor(Mutex::event, "startThread_lock", true);
hotspot\src\os\linux\vm\os_linux.cpp:4130:  Linux::set_createThread_lock(new Mutex(Mutex::leaf, "createThread_lock", false));
hotspot\src\os\solaris\vm\osThread_solaris.cpp:52:                    : new Mutex(Mutex::suspend_resume, "Callback_lock", true);
hotspot\src\share\vm\compiler\compileBroker.hpp:62:    _lock = new Monitor(Mutex::nonleaf+2, "CompileTaskLock");
hotspot\src\share\vm\gc_implementation\concurrentMarkSweep\compactibleFreeListSpace.cpp:82:  _parDictionaryAllocLock(Mutex::leaf - 1,  // == rank(ExpandHeap_lock) - 1
hotspot\src\share\vm\gc_implementation\concurrentMarkSweep\compactibleFreeListSpace.cpp:147:      _indexedFreeListParLocks[i] = new Mutex(Mutex::leaf - 1, // == ExpandHeap_lock - 1
hotspot\src\share\vm\gc_implementation\concurrentMarkSweep\concurrentMarkSweepGeneration.cpp:558:  _markBitMap(0, Mutex::leaf + 1, "CMS_markBitMap_lock"),
hotspot\src\share\vm\gc_implementation\concurrentMarkSweep\concurrentMarkSweepGeneration.cpp:591:  _verification_mark_bm(0, Mutex::leaf + 1, "CMS_verification_mark_bm_lock"),
hotspot\src\share\vm\gc_implementation\concurrentMarkSweep\concurrentMarkSweepGeneration.cpp:6407:  _lock(mutex_rank >= 0 ? new Mutex(mutex_rank, mutex_name, true) : NULL)
hotspot\src\share\vm\gc_implementation\concurrentMarkSweep\concurrentMarkSweepGeneration.hpp:182:    _par_lock(Mutex::event, "CMSMarkStack._par_lock", true),
hotspot\src\share\vm\gc_implementation\g1\concurrentG1RefineThread.cpp:53:    _monitor = new Monitor(Mutex::nonleaf, "Refinement monitor", true);
hotspot\src\share\vm\gc_implementation\g1\g1CollectedHeap.cpp:4676:      _stats_lock(Mutex::leaf, "parallel G1 stats lock", true),
hotspot\src\share\vm\gc_implementation\g1\heapRegion.cpp:938:  _par_alloc_lock(Mutex::leaf, "OffsetTableContigSpace par alloc lock", true),
hotspot\src\share\vm\gc_implementation\g1\heapRegionRemSet.cpp:501:  _m(Mutex::leaf, "An OtherRegionsTable lock", true),
hotspot\src\share\vm\gc_implementation\parallelScavenge\gcTaskManager.cpp:369:  _monitor = new Monitor(Mutex::barrier,                // rank
hotspot\src\share\vm\gc_implementation\parallelScavenge\gcTaskManager.cpp:890:    _lock = new Mutex(Mutex::barrier,                  // rank
hotspot\src\share\vm\gc_implementation\parallelScavenge\gcTaskManager.cpp:905:      result = new Monitor(Mutex::barrier,                  // rank
hotspot\src\share\vm\gc_implementation\shared\concurrentGCThread.cpp:109:    _m             = new Monitor(Mutex::leaf,
                                                                                                                                 "SuspendibleThreadSetLock", true);
hotspot\src\share\vm\gc_implementation\shared\concurrentGCThread.cpp:184:  _monitor(Mutex::nonleaf, "SLTMonitor"),
hotspot\src\share\vm\interpreter\oopMapCache.cpp:507:  _mut(Mutex::leaf, "An OopMapCache lock", true)
hotspot\src\share\vm\memory\space.cpp:954:  _par_alloc_lock(Mutex::leaf, "OffsetTableContigSpace par alloc lock", true)
hotspot\src\share\vm\prims\jvm.cpp:3655:  return new Mutex(Mutex::native, "JVM_RawMonitorCreate");
hotspot\src\share\vm\prims\jvmtiTagMap.cpp:419:  _lock(Mutex::nonleaf+2, "JvmtiTagMap._lock", false),
hotspot\src\share\vm\runtime\mutexLocker.cpp:48:Mutex*   Patching_lock                = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:50:Mutex*   PackageTable_lock            = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:51:Mutex*   CompiledIC_lock              = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:52:Mutex*   InlineCacheBuffer_lock       = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:53:Mutex*   VMStatistic_lock             = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:54:Mutex*   JNIGlobalHandle_lock         = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:55:Mutex*   JNIHandleBlockFreeList_lock  = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:56:Mutex*   JNICachedItableIndex_lock    = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:57:Mutex*   JmethodIdCreation_lock       = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:58:Mutex*   JfieldIdCreation_lock        = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:60:Mutex*   JvmtiThreadState_lock        = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:63:Mutex*   ExpandHeap_lock              = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:64:Mutex*   AdapterHandlerLibrary_lock   = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:65:Mutex*   SignatureHandlerLibrary_lock = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:66:Mutex*   VtableStubs_lock             = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:67:Mutex*   SymbolTable_lock             = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:68:Mutex*   StringTable_lock             = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:69:Mutex*   CodeCache_lock               = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:70:Mutex*   MethodData_lock              = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:71:Mutex*   RetData_lock                 = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:78:Mutex*   STS_init_lock                = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:83:Mutex*   CMRegionStack_lock           = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:84:Mutex*   SATB_Q_FL_lock               = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:86:Mutex*   Shared_SATB_Q_lock           = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:87:Mutex*   DirtyCardQ_FL_lock           = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:89:Mutex*   Shared_DirtyCardQ_lock       = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:90:Mutex*   ParGCRareEvent_lock          = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:91:Mutex*   EvacFailureStack_lock        = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:92:Mutex*   DerivedPointerTableGC_lock   = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:93:Mutex*   Compile_lock                 = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:96:Mutex*   CompileTaskAlloc_lock        = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:97:Mutex*   CompileStatistics_lock       = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:98:Mutex*   MultiArray_lock              = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:104:Mutex*   ProfilePrint_lock            = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:105:Mutex*   ExceptionCache_lock          = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:107:Mutex*   OsrList_lock                 = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:109:Mutex*   FullGCALot_lock              = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:112:Mutex*   Debug1_lock                  = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:113:Mutex*   Debug2_lock                  = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:114:Mutex*   Debug3_lock                  = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:116:Mutex*   tty_lock                     = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:118:Mutex*   RawMonitor_lock              = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:119:Mutex*   PerfDataMemAlloc_lock        = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:120:Mutex*   PerfDataManager_lock         = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:121:Mutex*   OopMapCacheAlloc_lock        = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:123:Mutex*   FreeList_lock                = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:125:Mutex*   OldSets_lock                 = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:126:Mutex*   MMUTracker_lock              = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:127:Mutex*   HotCardCache_lock            = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:131:Mutex*   Management_lock              = NULL;
hotspot\src\share\vm\runtime\mutexLocker.cpp:169:  def(tty_lock                     , Mutex  , event,       true ); // allow to lock in VM
hotspot\src\share\vm\runtime\mutexLocker.cpp:172:  def(STS_init_lock              , Mutex,   leaf,        true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:181:    def(CMRegionStack_lock         , Mutex,   leaf,        true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:182:    def(SATB_Q_FL_lock             , Mutex  , special,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:184:    def(Shared_SATB_Q_lock         , Mutex,   nonleaf,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:186:    def(DirtyCardQ_FL_lock         , Mutex  , special,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:188:    def(Shared_DirtyCardQ_lock     , Mutex,   nonleaf,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:190:    def(FreeList_lock              , Mutex,   leaf     ,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:192:    def(OldSets_lock               , Mutex  , leaf     ,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:193:    def(MMUTracker_lock            , Mutex  , leaf     ,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:194:    def(HotCardCache_lock          , Mutex  , special  ,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:195:    def(EvacFailureStack_lock      , Mutex  , nonleaf  ,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:197:  def(ParGCRareEvent_lock          , Mutex  , leaf     ,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:198:  def(DerivedPointerTableGC_lock   , Mutex,   leaf,        true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:199:  def(CodeCache_lock               , Mutex  , special,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:201:  def(RawMonitor_lock              , Mutex,   special,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:202:  def(OopMapCacheAlloc_lock        , Mutex,   leaf,        true ); // used for oop_map_cache allocation.
hotspot\src\share\vm\runtime\mutexLocker.cpp:204:  def(Patching_lock                , Mutex  , special,     true ); // used for safepointing and code patching.
hotspot\src\share\vm\runtime\mutexLocker.cpp:207:  def(JmethodIdCreation_lock       , Mutex  , leaf,        true ); // used for creating jmethodIDs.
hotspot\src\share\vm\runtime\mutexLocker.cpp:210:  def(PackageTable_lock            , Mutex  , leaf,        false);
hotspot\src\share\vm\runtime\mutexLocker.cpp:211:  def(InlineCacheBuffer_lock       , Mutex  , leaf,        true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:212:  def(VMStatistic_lock             , Mutex  , leaf,        false);
hotspot\src\share\vm\runtime\mutexLocker.cpp:213:  def(ExpandHeap_lock              , Mutex  , leaf,        true ); // Used during compilation by VM thread
hotspot\src\share\vm\runtime\mutexLocker.cpp:214:  def(JNIHandleBlockFreeList_lock  , Mutex  , leaf,        true ); // handles are used by VM thread
hotspot\src\share\vm\runtime\mutexLocker.cpp:215:  def(SignatureHandlerLibrary_lock , Mutex  , leaf,        false);
hotspot\src\share\vm\runtime\mutexLocker.cpp:216:  def(SymbolTable_lock             , Mutex  , leaf,        true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:217:  def(StringTable_lock             , Mutex  , leaf,        true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:218:  def(ProfilePrint_lock            , Mutex  , leaf,        false); // serial profile printing
hotspot\src\share\vm\runtime\mutexLocker.cpp:219:  def(ExceptionCache_lock          , Mutex  , leaf,        false); // serial profile printing
hotspot\src\share\vm\runtime\mutexLocker.cpp:220:  def(OsrList_lock                 , Mutex  , leaf,        true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:221:  def(Debug1_lock                  , Mutex  , leaf,        true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:223:  def(FullGCALot_lock              , Mutex  , leaf,        false); // a lock to make FullGCALot MT safe
hotspot\src\share\vm\runtime\mutexLocker.cpp:226:  def(PerfDataMemAlloc_lock        , Mutex  , leaf,        true ); // used for allocating PerfData memory for performance data
hotspot\src\share\vm\runtime\mutexLocker.cpp:227:  def(PerfDataManager_lock         , Mutex  , leaf,        true ); // used for synchronized access to PerfDataManager resources
hotspot\src\share\vm\runtime\mutexLocker.cpp:239:  def(RetData_lock                 , Mutex  , nonleaf,     false);
hotspot\src\share\vm\runtime\mutexLocker.cpp:241:  def(VtableStubs_lock             , Mutex  , nonleaf,     true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:243:  def(JNIGlobalHandle_lock         , Mutex  , nonleaf,     true ); // locks JNIHandleBlockFreeList_lock
hotspot\src\share\vm\runtime\mutexLocker.cpp:245:  def(AdapterHandlerLibrary_lock   , Mutex  , nonleaf,     true);
hotspot\src\share\vm\runtime\mutexLocker.cpp:251:  def(JfieldIdCreation_lock        , Mutex  , nonleaf+1,   true ); // jfieldID, Used in VM_Operation
hotspot\src\share\vm\runtime\mutexLocker.cpp:252:  def(JNICachedItableIndex_lock    , Mutex  , nonleaf+1,   false); // Used to cache an itable index during JNI invoke
hotspot\src\share\vm\runtime\mutexLocker.cpp:254:  def(CompiledIC_lock              , Mutex  , nonleaf+2,   false); // locks VtableStubs_lock, InlineCacheBuffer_lock
hotspot\src\share\vm\runtime\mutexLocker.cpp:255:  def(CompileTaskAlloc_lock        , Mutex  , nonleaf+2,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:256:  def(CompileStatistics_lock       , Mutex  , nonleaf+2,   false);
hotspot\src\share\vm\runtime\mutexLocker.cpp:257:  def(MultiArray_lock              , Mutex  , nonleaf+2,   false); // locks SymbolTable_lock
hotspot\src\share\vm\runtime\mutexLocker.cpp:259:  def(JvmtiThreadState_lock        , Mutex  , nonleaf+2,   false); // Used by JvmtiThreadState/JvmtiEventController
hotspot\src\share\vm\runtime\mutexLocker.cpp:261:  def(Management_lock              , Mutex  , nonleaf+2,   false); // used for JVM management
hotspot\src\share\vm\runtime\mutexLocker.cpp:263:  def(Compile_lock                 , Mutex  , nonleaf+3,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:264:  def(MethodData_lock              , Mutex  , nonleaf+3,   false);
hotspot\src\share\vm\runtime\mutexLocker.cpp:267:  def(Debug2_lock                  , Mutex  , nonleaf+4,   true );
hotspot\src\share\vm\runtime\mutexLocker.cpp:268:  def(Debug3_lock                  , Mutex  , nonleaf+4,   true );
hotspot\src\share\vm\runtime\mutexLocker.hpp:42:extern Mutex*   Patching_lock;                   // a lock used to guard code patching of compiled code
hotspot\src\share\vm\runtime\mutexLocker.hpp:44:extern Mutex*   PackageTable_lock;               // a lock on the class loader package table
hotspot\src\share\vm\runtime\mutexLocker.hpp:45:extern Mutex*   CompiledIC_lock;                 // a lock used to guard compiled IC patching and access
hotspot\src\share\vm\runtime\mutexLocker.hpp:46:extern Mutex*   InlineCacheBuffer_lock;          // a lock used to guard the InlineCacheBuffer
hotspot\src\share\vm\runtime\mutexLocker.hpp:47:extern Mutex*   VMStatistic_lock;                // a lock used to guard statistics count increment
hotspot\src\share\vm\runtime\mutexLocker.hpp:48:extern Mutex*   JNIGlobalHandle_lock;            // a lock on creating JNI global handles
hotspot\src\share\vm\runtime\mutexLocker.hpp:49:extern Mutex*   JNIHandleBlockFreeList_lock;     // a lock on the JNI handle block free list
hotspot\src\share\vm\runtime\mutexLocker.hpp:50:extern Mutex*   JNICachedItableIndex_lock;       // a lock on caching an itable index during JNI invoke
hotspot\src\share\vm\runtime\mutexLocker.hpp:51:extern Mutex*   JmethodIdCreation_lock;          // a lock on creating JNI method identifiers
hotspot\src\share\vm\runtime\mutexLocker.hpp:52:extern Mutex*   JfieldIdCreation_lock;           // a lock on creating JNI static field identifiers
hotspot\src\share\vm\runtime\mutexLocker.hpp:54:extern Mutex*   JvmtiThreadState_lock;           // a lock on modification of JVMTI thread data
hotspot\src\share\vm\runtime\mutexLocker.hpp:57:extern Mutex*   ExpandHeap_lock;                 // a lock on expanding the heap
hotspot\src\share\vm\runtime\mutexLocker.hpp:58:extern Mutex*   AdapterHandlerLibrary_lock;      // a lock on the AdapterHandlerLibrary
hotspot\src\share\vm\runtime\mutexLocker.hpp:59:extern Mutex*   SignatureHandlerLibrary_lock;    // a lock on the SignatureHandlerLibrary
hotspot\src\share\vm\runtime\mutexLocker.hpp:60:extern Mutex*   VtableStubs_lock;                // a lock on the VtableStubs
hotspot\src\share\vm\runtime\mutexLocker.hpp:61:extern Mutex*   SymbolTable_lock;                // a lock on the symbol table
hotspot\src\share\vm\runtime\mutexLocker.hpp:62:extern Mutex*   StringTable_lock;                // a lock on the interned string table
hotspot\src\share\vm\runtime\mutexLocker.hpp:63:extern Mutex*   CodeCache_lock;                  // a lock on the CodeCache, rank is special, use MutexLockerEx
hotspot\src\share\vm\runtime\mutexLocker.hpp:64:extern Mutex*   MethodData_lock;                 // a lock on installation of method data
hotspot\src\share\vm\runtime\mutexLocker.hpp:65:extern Mutex*   RetData_lock;                    // a lock on installation of RetData inside method data
hotspot\src\share\vm\runtime\mutexLocker.hpp:66:extern Mutex*   DerivedPointerTableGC_lock;      // a lock to protect the derived pointer table
hotspot\src\share\vm\runtime\mutexLocker.hpp:74:extern Mutex*   STS_init_lock;                   // coordinate initialization of SuspendibleThreadSets.
hotspot\src\share\vm\runtime\mutexLocker.hpp:79:extern Mutex*   CMRegionStack_lock;              // used for protecting accesses to the CM region stack
hotspot\src\share\vm\runtime\mutexLocker.hpp:80:extern Mutex*   SATB_Q_FL_lock;                  // Protects SATB Q
hotspot\src\share\vm\runtime\mutexLocker.hpp:84:extern Mutex*   Shared_SATB_Q_lock;              // Lock protecting SATB
hotspot\src\share\vm\runtime\mutexLocker.hpp:88:extern Mutex*   DirtyCardQ_FL_lock;              // Protects dirty card Q
hotspot\src\share\vm\runtime\mutexLocker.hpp:92:extern Mutex*   Shared_DirtyCardQ_lock;          // Lock protecting dirty card
hotspot\src\share\vm\runtime\mutexLocker.hpp:96:extern Mutex*   ParGCRareEvent_lock;             // Synchronizes various (rare) parallel GC ops.
hotspot\src\share\vm\runtime\mutexLocker.hpp:97:extern Mutex*   EvacFailureStack_lock;           // guards the evac failure scan stack
hotspot\src\share\vm\runtime\mutexLocker.hpp:98:extern Mutex*   Compile_lock;                    // a lock held when Compilation is updating code (used to block CodeCache traversal, CHA updates, etc)
hotspot\src\share\vm\runtime\mutexLocker.hpp:101:extern Mutex*   CompileTaskAlloc_lock;           // a lock held when CompileTasks are allocated
hotspot\src\share\vm\runtime\mutexLocker.hpp:102:extern Mutex*   CompileStatistics_lock;          // a lock held when updating compilation statistics
hotspot\src\share\vm\runtime\mutexLocker.hpp:103:extern Mutex*   MultiArray_lock;                 // a lock used to guard allocation of multi-dim arrays
hotspot\src\share\vm\runtime\mutexLocker.hpp:109:extern Mutex*   ProfilePrint_lock;               // a lock used to serialize the printing of profiles
hotspot\src\share\vm\runtime\mutexLocker.hpp:110:extern Mutex*   ExceptionCache_lock;             // a lock used to synchronize exception cache updates
hotspot\src\share\vm\runtime\mutexLocker.hpp:111:extern Mutex*   OsrList_lock;                    // a lock used to serialize access to OSR queues
hotspot\src\share\vm\runtime\mutexLocker.hpp:114:extern Mutex*   FullGCALot_lock;                 // a lock to make FullGCALot MT safe
hotspot\src\share\vm\runtime\mutexLocker.hpp:116:extern Mutex*   Debug1_lock;                     // A bunch of pre-allocated locks that can be used for tracing
hotspot\src\share\vm\runtime\mutexLocker.hpp:117:extern Mutex*   Debug2_lock;                     // down synchronization related bugs!
hotspot\src\share\vm\runtime\mutexLocker.hpp:118:extern Mutex*   Debug3_lock;
hotspot\src\share\vm\runtime\mutexLocker.hpp:120:extern Mutex*   RawMonitor_lock;
hotspot\src\share\vm\runtime\mutexLocker.hpp:121:extern Mutex*   PerfDataMemAlloc_lock;           // a lock on the allocator for PerfData memory for performance data
hotspot\src\share\vm\runtime\mutexLocker.hpp:122:extern Mutex*   PerfDataManager_lock;            // a long on access to PerfDataManager resources
hotspot\src\share\vm\runtime\mutexLocker.hpp:123:extern Mutex*   ParkerFreeList_lock;
hotspot\src\share\vm\runtime\mutexLocker.hpp:124:extern Mutex*   OopMapCacheAlloc_lock;           // protects allocation of oop_map caches
hotspot\src\share\vm\runtime\mutexLocker.hpp:126:extern Mutex*   FreeList_lock;                   // protects the free region list during safepoints
hotspot\src\share\vm\runtime\mutexLocker.hpp:128:extern Mutex*   OldSets_lock;                    // protects the old region sets
hotspot\src\share\vm\runtime\mutexLocker.hpp:129:extern Mutex*   MMUTracker_lock;                 // protects the MMU
hotspot\src\share\vm\runtime\mutexLocker.hpp:131:extern Mutex*   HotCardCache_lock;               // protects the hot card cache
hotspot\src\share\vm\runtime\mutexLocker.hpp:133:extern Mutex*   Management_lock;                 // a lock used to serialize JVM management
hotspot\src\share\vm\runtime\thread.cpp:221:  _SR_lock = new Monitor(Mutex::suspend_resume, "SR_lock", true);
hotspot\src\share\vm\runtime\vmThread.cpp:225:  _terminate_lock = new Monitor(Mutex::safepoint, "VMThread::_terminate_lock", true);
hotspot\src\share\vm\runtime\vm_operations.cpp:392:  Monitor timer(Mutex::leaf, "VM_Exit timer", true);
hotspot\src\share\vm\services\memoryManager.cpp:202:  _last_gc_lock = new Mutex(Mutex::leaf, "_last_gc_lock", true);
hotspot\src\share\vm\services\memoryManager.hpp:166:  Mutex*       _last_gc_lock;
hotspot\src\share\vm\shark\sharkCompiler.cpp:65:  _execution_engine_lock = new Monitor(Mutex::leaf, "SharkExecutionEngineLock");
hotspot\src\share\vm\utilities\ostream.cpp:310:extern Mutex* tty_lock;
Global site tag (gtag.js) - Google Analytics