< prev index next >

src/share/vm/runtime/mutexLocker.cpp

Print this page
rev 12906 : [mq]: gc_interface


 164 }
 165 #endif
 166 
 167 #define def(var, type, pri, vm_block, safepoint_check_allowed ) {      \
 168   var = new type(Mutex::pri, #var, vm_block, safepoint_check_allowed); \
 169   assert(_num_mutex < MAX_NUM_MUTEX, "increase MAX_NUM_MUTEX");        \
 170   _mutex_array[_num_mutex++] = var;                                      \
 171 }
 172 
 173 // Using Padded subclasses to prevent false sharing of these global monitors and mutexes.
 174 void mutex_init() {
 175   def(tty_lock                     , PaddedMutex  , event,       true,  Monitor::_safepoint_check_never);      // allow to lock in VM
 176 
 177   def(CGC_lock                     , PaddedMonitor, special,     true,  Monitor::_safepoint_check_never);      // coordinate between fore- and background GC
 178   def(STS_lock                     , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);
 179 
 180   if (UseConcMarkSweepGC || UseG1GC) {
 181     def(FullGCCount_lock           , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);      // in support of ExplicitGCInvokesConcurrent
 182   }
 183   if (UseG1GC) {



 184 
 185     def(SATB_Q_FL_lock             , PaddedMutex  , special  ,   true,  Monitor::_safepoint_check_never);
 186     def(SATB_Q_CBL_mon             , PaddedMonitor, leaf - 1 ,   true,  Monitor::_safepoint_check_never);
 187     def(Shared_SATB_Q_lock         , PaddedMutex  , leaf - 1 ,   true,  Monitor::_safepoint_check_never);
 188 
 189     def(DirtyCardQ_FL_lock         , PaddedMutex  , special  ,   true,  Monitor::_safepoint_check_never);
 190     def(DirtyCardQ_CBL_mon         , PaddedMonitor, leaf - 1 ,   true,  Monitor::_safepoint_check_never);
 191     def(Shared_DirtyCardQ_lock     , PaddedMutex  , leaf - 1 ,   true,  Monitor::_safepoint_check_never);
 192 
 193     def(FreeList_lock              , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 194     def(SecondaryFreeList_lock     , PaddedMonitor, leaf     ,   true,  Monitor::_safepoint_check_never);
 195     def(OldSets_lock               , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 196     def(RootRegionScan_lock        , PaddedMonitor, leaf     ,   true,  Monitor::_safepoint_check_never);
 197     def(MMUTracker_lock            , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 198 
 199     def(StringDedupQueue_lock      , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);
 200     def(StringDedupTable_lock      , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
 201 
 202     def(MarkStackFreeList_lock     , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 203     def(MarkStackChunkList_lock    , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 204   }
 205   def(ParGCRareEvent_lock          , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_sometimes);
 206   def(DerivedPointerTableGC_lock   , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
 207 #ifdef INCLUDE_ALL_GCS
 208   def(CGCPhaseManager_lock         , PaddedMonitor, leaf,        false, Monitor::_safepoint_check_sometimes);
 209 #endif
 210   def(CodeCache_lock               , PaddedMutex  , special,     true,  Monitor::_safepoint_check_never);
 211   def(RawMonitor_lock              , PaddedMutex  , special,     true,  Monitor::_safepoint_check_never);




 164 }
 165 #endif
 166 
 167 #define def(var, type, pri, vm_block, safepoint_check_allowed ) {      \
 168   var = new type(Mutex::pri, #var, vm_block, safepoint_check_allowed); \
 169   assert(_num_mutex < MAX_NUM_MUTEX, "increase MAX_NUM_MUTEX");        \
 170   _mutex_array[_num_mutex++] = var;                                      \
 171 }
 172 
 173 // Using Padded subclasses to prevent false sharing of these global monitors and mutexes.
 174 void mutex_init() {
 175   def(tty_lock                     , PaddedMutex  , event,       true,  Monitor::_safepoint_check_never);      // allow to lock in VM
 176 
 177   def(CGC_lock                     , PaddedMonitor, special,     true,  Monitor::_safepoint_check_never);      // coordinate between fore- and background GC
 178   def(STS_lock                     , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);
 179 
 180   if (UseConcMarkSweepGC || UseG1GC) {
 181     def(FullGCCount_lock           , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);      // in support of ExplicitGCInvokesConcurrent
 182   }
 183   if (UseG1GC) {
 184     def(SATB_Q_FL_lock             , PaddedMutex  , special - 3, true,  Monitor::_safepoint_check_never);
 185     def(SATB_Q_CBL_mon             , PaddedMonitor, special - 2, true,  Monitor::_safepoint_check_never);
 186     def(Shared_SATB_Q_lock         , PaddedMutex  , special - 1, true,  Monitor::_safepoint_check_never);
 187 
 188     def(DirtyCardQ_FL_lock         , PaddedMutex  , special - 3, true,  Monitor::_safepoint_check_never);
 189     def(DirtyCardQ_CBL_mon         , PaddedMonitor, special - 2, true,  Monitor::_safepoint_check_never);
 190     def(Shared_DirtyCardQ_lock     , PaddedMutex  , special - 1, true,  Monitor::_safepoint_check_never);




 191 
 192     def(FreeList_lock              , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 193     def(SecondaryFreeList_lock     , PaddedMonitor, leaf     ,   true,  Monitor::_safepoint_check_never);
 194     def(OldSets_lock               , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 195     def(RootRegionScan_lock        , PaddedMonitor, leaf     ,   true,  Monitor::_safepoint_check_never);
 196     def(MMUTracker_lock            , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 197 
 198     def(StringDedupQueue_lock      , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_never);
 199     def(StringDedupTable_lock      , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
 200 
 201     def(MarkStackFreeList_lock     , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 202     def(MarkStackChunkList_lock    , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 203   }
 204   def(ParGCRareEvent_lock          , PaddedMutex  , leaf     ,   true,  Monitor::_safepoint_check_sometimes);
 205   def(DerivedPointerTableGC_lock   , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
 206 #ifdef INCLUDE_ALL_GCS
 207   def(CGCPhaseManager_lock         , PaddedMonitor, leaf,        false, Monitor::_safepoint_check_sometimes);
 208 #endif
 209   def(CodeCache_lock               , PaddedMutex  , special,     true,  Monitor::_safepoint_check_never);
 210   def(RawMonitor_lock              , PaddedMutex  , special,     true,  Monitor::_safepoint_check_never);


< prev index next >