--- old/src/share/vm/gc/g1/ptrQueue.cpp 2017-04-25 16:44:46.271174800 +0200 +++ new/src/share/vm/gc/g1/ptrQueue.cpp 2017-04-25 16:44:46.159174804 +0200 @@ -72,16 +72,7 @@ void PtrQueue::locking_enqueue_completed_buffer(BufferNode* node) { assert(_lock->owned_by_self(), "Required."); - - // We have to unlock _lock (which may be Shared_DirtyCardQ_lock) before - // we acquire DirtyCardQ_CBL_mon inside enqueue_complete_buffer as they - // have the same rank and we may get the "possible deadlock" message - _lock->unlock(); - qset()->enqueue_complete_buffer(node); - // We must relock only because the caller will unlock, for the normal - // case. - _lock->lock_without_safepoint_check(); }