mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-02 12:10:14 +00:00
Merge
This commit is contained in:
commit
f90ee1a167
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -836,8 +836,7 @@ void FlatProfiler::record_vm_tick() {
|
||||
vm_thread_profiler->inc_thread_ticks();
|
||||
|
||||
// Get a snapshot of a current VMThread pc (and leave it running!)
|
||||
// The call may fail if, for instance the VM thread is interrupted while
|
||||
// holding the Interrupt_lock or for other reasons.
|
||||
// The call may fail in some circumstances
|
||||
epc = os::get_thread_pc(VMThread::vm_thread());
|
||||
if(epc.pc() != NULL) {
|
||||
if (os::dll_address_to_function_name(epc.pc(), buf, sizeof(buf), NULL)) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -1320,15 +1320,12 @@ void Monitor::set_owner_implementation(Thread *new_owner) {
|
||||
// The rank Mutex::native is an exception in that it is not subject
|
||||
// to the verification rules.
|
||||
// Here are some further notes relating to mutex acquisition anomalies:
|
||||
// . under Solaris, the interrupt lock gets acquired when doing
|
||||
// profiling, so any lock could be held.
|
||||
// . it is also ok to acquire Safepoint_lock at the very end while we
|
||||
// already hold Terminator_lock - may happen because of periodic safepoints
|
||||
if (this->rank() != Mutex::native &&
|
||||
this->rank() != Mutex::suspend_resume &&
|
||||
locks != NULL && locks->rank() <= this->rank() &&
|
||||
!SafepointSynchronize::is_at_safepoint() &&
|
||||
this != Interrupt_lock && this != ProfileVM_lock &&
|
||||
!(this == Safepoint_lock && contains(locks, Terminator_lock) &&
|
||||
SafepointSynchronize::is_synchronizing())) {
|
||||
new_owner->print_owned_locks();
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -50,7 +50,6 @@ Mutex* JmethodIdCreation_lock = NULL;
|
||||
Mutex* JfieldIdCreation_lock = NULL;
|
||||
Monitor* JNICritical_lock = NULL;
|
||||
Mutex* JvmtiThreadState_lock = NULL;
|
||||
Monitor* JvmtiPendingEvent_lock = NULL;
|
||||
Monitor* Heap_lock = NULL;
|
||||
Mutex* ExpandHeap_lock = NULL;
|
||||
Mutex* AdapterHandlerLibrary_lock = NULL;
|
||||
@ -73,8 +72,6 @@ Monitor* CGC_lock = NULL;
|
||||
Monitor* STS_lock = NULL;
|
||||
Monitor* SLT_lock = NULL;
|
||||
Monitor* FullGCCount_lock = NULL;
|
||||
Monitor* CMark_lock = NULL;
|
||||
Mutex* CMRegionStack_lock = NULL;
|
||||
Mutex* SATB_Q_FL_lock = NULL;
|
||||
Monitor* SATB_Q_CBL_mon = NULL;
|
||||
Mutex* Shared_SATB_Q_lock = NULL;
|
||||
@ -94,11 +91,8 @@ Mutex* MultiArray_lock = NULL;
|
||||
Monitor* Terminator_lock = NULL;
|
||||
Monitor* BeforeExit_lock = NULL;
|
||||
Monitor* Notify_lock = NULL;
|
||||
Monitor* Interrupt_lock = NULL;
|
||||
Monitor* ProfileVM_lock = NULL;
|
||||
Mutex* ProfilePrint_lock = NULL;
|
||||
Mutex* ExceptionCache_lock = NULL;
|
||||
Monitor* ObjAllocPost_lock = NULL;
|
||||
Mutex* OsrList_lock = NULL;
|
||||
|
||||
#ifndef PRODUCT
|
||||
@ -184,8 +178,6 @@ void mutex_init() {
|
||||
}
|
||||
if (UseG1GC) {
|
||||
|
||||
def(CMark_lock , Monitor, nonleaf, true, Monitor::_safepoint_check_never); // coordinate concurrent mark thread
|
||||
def(CMRegionStack_lock , Mutex, leaf, true, Monitor::_safepoint_check_never);
|
||||
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);
|
||||
@ -206,12 +198,10 @@ void mutex_init() {
|
||||
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);
|
||||
def(Interrupt_lock , Monitor, special, true, Monitor::_safepoint_check_never); // used for interrupt processing
|
||||
def(RawMonitor_lock , Mutex, special, true, Monitor::_safepoint_check_never);
|
||||
def(OopMapCacheAlloc_lock , Mutex, leaf, true, Monitor::_safepoint_check_always); // used for oop_map_cache allocation.
|
||||
|
||||
def(Patching_lock , Mutex , special, true, Monitor::_safepoint_check_never); // used for safepointing and code patching.
|
||||
def(ObjAllocPost_lock , Monitor, special, false, Monitor::_safepoint_check_never);
|
||||
def(Service_lock , Monitor, special, true, Monitor::_safepoint_check_never); // used for service thread operations
|
||||
def(JmethodIdCreation_lock , Mutex , leaf, true, Monitor::_safepoint_check_always); // used for creating jmethodIDs.
|
||||
|
||||
@ -267,7 +257,6 @@ void mutex_init() {
|
||||
def(MultiArray_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // locks SymbolTable_lock
|
||||
|
||||
def(JvmtiThreadState_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // Used by JvmtiThreadState/JvmtiEventController
|
||||
def(JvmtiPendingEvent_lock , Monitor, nonleaf, false, Monitor::_safepoint_check_never); // Used by JvmtiCodeBlobEvents
|
||||
def(Management_lock , Mutex , nonleaf+2, false, Monitor::_safepoint_check_always); // used for JVM management
|
||||
|
||||
def(Compile_lock , Mutex , nonleaf+3, true, Monitor::_safepoint_check_sometimes);
|
||||
@ -277,7 +266,6 @@ void mutex_init() {
|
||||
def(MethodCompileQueue_lock , Monitor, nonleaf+4, true, Monitor::_safepoint_check_always);
|
||||
def(Debug2_lock , Mutex , nonleaf+4, true, Monitor::_safepoint_check_never);
|
||||
def(Debug3_lock , Mutex , nonleaf+4, true, Monitor::_safepoint_check_never);
|
||||
def(ProfileVM_lock , Monitor, special, false, Monitor::_safepoint_check_never); // used for profiling of the VMThread
|
||||
def(CompileThread_lock , Monitor, nonleaf+5, false, Monitor::_safepoint_check_always);
|
||||
def(PeriodicTask_lock , Monitor, nonleaf+5, true, Monitor::_safepoint_check_sometimes);
|
||||
if (WhiteBoxAPI) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -43,7 +43,6 @@ extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI metho
|
||||
extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers
|
||||
extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in
|
||||
extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data
|
||||
extern Monitor* JvmtiPendingEvent_lock; // a lock on the JVMTI pending events list
|
||||
extern Monitor* Heap_lock; // a lock on the heap
|
||||
extern Mutex* ExpandHeap_lock; // a lock on expanding the heap
|
||||
extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary
|
||||
@ -68,8 +67,6 @@ extern Monitor* CGC_lock; // used for coordination betwee
|
||||
extern Monitor* STS_lock; // used for joining/leaving SuspendibleThreadSet.
|
||||
extern Monitor* SLT_lock; // used in CMS GC for acquiring PLL
|
||||
extern Monitor* FullGCCount_lock; // in support of "concurrent" full gc
|
||||
extern Monitor* CMark_lock; // used for concurrent mark thread coordination
|
||||
extern Mutex* CMRegionStack_lock; // used for protecting accesses to the CM region stack
|
||||
extern Mutex* SATB_Q_FL_lock; // Protects SATB Q
|
||||
// buffer free list.
|
||||
extern Monitor* SATB_Q_CBL_mon; // Protects SATB Q
|
||||
@ -98,8 +95,6 @@ extern Mutex* MultiArray_lock; // a lock used to guard allocat
|
||||
extern Monitor* Terminator_lock; // a lock used to guard termination of the vm
|
||||
extern Monitor* BeforeExit_lock; // a lock used to guard cleanups and shutdown hooks
|
||||
extern Monitor* Notify_lock; // a lock used to synchronize the start-up of the vm
|
||||
extern Monitor* Interrupt_lock; // a lock used for condition variable mediated interrupt processing
|
||||
extern Monitor* ProfileVM_lock; // a lock used for profiling the VMThread
|
||||
extern Mutex* ProfilePrint_lock; // a lock used to serialize the printing of profiles
|
||||
extern Mutex* ExceptionCache_lock; // a lock used to synchronize exception cache updates
|
||||
extern Mutex* OsrList_lock; // a lock used to serialize access to OSR queues
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user