--- old/src/share/vm/runtime/mutexLocker.cpp 2015-10-08 22:16:03.009937587 +0200 +++ new/src/share/vm/runtime/mutexLocker.cpp 2015-10-08 22:16:02.908940000 +0200 @@ -53,6 +53,9 @@ Mutex* JvmtiThreadState_lock = NULL; Monitor* JvmtiPendingEvent_lock = NULL; Monitor* Heap_lock = NULL; +Monitor* ShenandoahHeap_lock = NULL; +Monitor* ShenandoahFullGC_lock = NULL; +Monitor* ShenandoahJNICritical_lock = NULL; Mutex* ExpandHeap_lock = NULL; Mutex* AdapterHandlerLibrary_lock = NULL; Mutex* SignatureHandlerLibrary_lock = NULL; @@ -100,6 +103,7 @@ Mutex* ExceptionCache_lock = NULL; Monitor* ObjAllocPost_lock = NULL; Mutex* OsrList_lock = NULL; +Monitor* ShenandoahMemProtect_lock = NULL; #ifndef PRODUCT Mutex* FullGCALot_lock = NULL; @@ -203,6 +207,14 @@ def(StringDedupQueue_lock , Monitor, leaf, true, Monitor::_safepoint_check_never); def(StringDedupTable_lock , Mutex , leaf, true, Monitor::_safepoint_check_never); } + if (UseShenandoahGC) { + def(SATB_Q_FL_lock , Mutex , special, true, Monitor::_safepoint_check_never); + def(SATB_Q_CBL_mon , Monitor, nonleaf, true, Monitor::_safepoint_check_never); + def(Shared_SATB_Q_lock , Mutex, nonleaf, true, Monitor::_safepoint_check_never); + def(ShenandoahFullGC_lock , Monitor, leaf, true, Monitor::_safepoint_check_always); + def(ShenandoahJNICritical_lock , Monitor, nonleaf+1, false, Monitor::_safepoint_check_never); + def(ShenandoahMemProtect_lock , Monitor, native, false, Monitor::_safepoint_check_never); + } def(ParGCRareEvent_lock , Mutex , leaf , true, Monitor::_safepoint_check_sometimes); def(DerivedPointerTableGC_lock , Mutex, leaf, true, Monitor::_safepoint_check_never); def(CodeCache_lock , Mutex , special, true, Monitor::_safepoint_check_never); @@ -257,6 +269,7 @@ } def(Heap_lock , Monitor, nonleaf+1, false, Monitor::_safepoint_check_sometimes); + def(ShenandoahHeap_lock , Monitor, special, false, Monitor::_safepoint_check_never); def(JfieldIdCreation_lock , Mutex , nonleaf+1, true, Monitor::_safepoint_check_always); // jfieldID, Used in VM_Operation def(MemberNameTable_lock , Mutex , nonleaf+1, false, Monitor::_safepoint_check_always); // Used to protect MemberNameTable