1 /*
2 * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
64 Mutex* TouchedMethodLog_lock = NULL;
65 Mutex* RetData_lock = NULL;
66 Monitor* VMOperationQueue_lock = NULL;
67 Monitor* VMOperationRequest_lock = NULL;
68 Monitor* Safepoint_lock = NULL;
69 Monitor* SerializePage_lock = NULL;
70 Monitor* Threads_lock = NULL;
71 Monitor* CGC_lock = NULL;
72 Monitor* STS_lock = NULL;
73 Monitor* FullGCCount_lock = NULL;
74 Mutex* SATB_Q_FL_lock = NULL;
75 Monitor* SATB_Q_CBL_mon = NULL;
76 Mutex* Shared_SATB_Q_lock = NULL;
77 Mutex* DirtyCardQ_FL_lock = NULL;
78 Monitor* DirtyCardQ_CBL_mon = NULL;
79 Mutex* Shared_DirtyCardQ_lock = NULL;
80 Mutex* MarkStackFreeList_lock = NULL;
81 Mutex* MarkStackChunkList_lock = NULL;
82 Mutex* ParGCRareEvent_lock = NULL;
83 Mutex* DerivedPointerTableGC_lock = NULL;
84 Mutex* Compile_lock = NULL;
85 Monitor* MethodCompileQueue_lock = NULL;
86 Monitor* CompileThread_lock = NULL;
87 Monitor* Compilation_lock = NULL;
88 Mutex* CompileTaskAlloc_lock = NULL;
89 Mutex* CompileStatistics_lock = NULL;
90 Mutex* DirectivesStack_lock = NULL;
91 Mutex* MultiArray_lock = NULL;
92 Monitor* Terminator_lock = NULL;
93 Monitor* BeforeExit_lock = NULL;
94 Monitor* Notify_lock = NULL;
95 Mutex* ProfilePrint_lock = NULL;
96 Mutex* ExceptionCache_lock = NULL;
97 Mutex* OsrList_lock = NULL;
98
99 #ifndef PRODUCT
100 Mutex* FullGCALot_lock = NULL;
101 #endif
102
103 Mutex* Debug1_lock = NULL;
186 def(Shared_SATB_Q_lock , PaddedMutex , nonleaf, true, Monitor::_safepoint_check_never);
187
188 def(DirtyCardQ_FL_lock , PaddedMutex , special, true, Monitor::_safepoint_check_never);
189 def(DirtyCardQ_CBL_mon , PaddedMonitor, nonleaf, true, Monitor::_safepoint_check_never);
190 def(Shared_DirtyCardQ_lock , PaddedMutex , nonleaf, 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 def(CodeCache_lock , PaddedMutex , special, true, Monitor::_safepoint_check_never);
207 def(RawMonitor_lock , PaddedMutex , special, true, Monitor::_safepoint_check_never);
208 def(OopMapCacheAlloc_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_always); // used for oop_map_cache allocation.
209
210 def(Patching_lock , PaddedMutex , special, true, Monitor::_safepoint_check_never); // used for safepointing and code patching.
211 def(Service_lock , PaddedMonitor, special, true, Monitor::_safepoint_check_never); // used for service thread operations
212 def(JmethodIdCreation_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_always); // used for creating jmethodIDs.
213
214 def(SystemDictionary_lock , PaddedMonitor, leaf, true, Monitor::_safepoint_check_always); // lookups done by VM thread
215 def(Module_lock , PaddedMutex , leaf+2, true, Monitor::_safepoint_check_always);
216 def(InlineCacheBuffer_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_always);
217 def(VMStatistic_lock , PaddedMutex , leaf, false, Monitor::_safepoint_check_always);
218 def(ExpandHeap_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_always); // Used during compilation by VM thread
219 def(JNIHandleBlockFreeList_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never); // handles are used by VM thread
220 def(SignatureHandlerLibrary_lock , PaddedMutex , leaf, false, Monitor::_safepoint_check_always);
221 def(SymbolTable_lock , PaddedMutex , leaf+2, true, Monitor::_safepoint_check_always);
222 def(StringTable_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_always);
223 def(ProfilePrint_lock , PaddedMutex , leaf, false, Monitor::_safepoint_check_always); // serial profile printing
224 def(ExceptionCache_lock , PaddedMutex , leaf, false, Monitor::_safepoint_check_always); // serial profile printing
225 def(OsrList_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never);
|
1 /*
2 * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
64 Mutex* TouchedMethodLog_lock = NULL;
65 Mutex* RetData_lock = NULL;
66 Monitor* VMOperationQueue_lock = NULL;
67 Monitor* VMOperationRequest_lock = NULL;
68 Monitor* Safepoint_lock = NULL;
69 Monitor* SerializePage_lock = NULL;
70 Monitor* Threads_lock = NULL;
71 Monitor* CGC_lock = NULL;
72 Monitor* STS_lock = NULL;
73 Monitor* FullGCCount_lock = NULL;
74 Mutex* SATB_Q_FL_lock = NULL;
75 Monitor* SATB_Q_CBL_mon = NULL;
76 Mutex* Shared_SATB_Q_lock = NULL;
77 Mutex* DirtyCardQ_FL_lock = NULL;
78 Monitor* DirtyCardQ_CBL_mon = NULL;
79 Mutex* Shared_DirtyCardQ_lock = NULL;
80 Mutex* MarkStackFreeList_lock = NULL;
81 Mutex* MarkStackChunkList_lock = NULL;
82 Mutex* ParGCRareEvent_lock = NULL;
83 Mutex* DerivedPointerTableGC_lock = NULL;
84 Monitor* CGCPhaseManager_lock = NULL;
85 Mutex* Compile_lock = NULL;
86 Monitor* MethodCompileQueue_lock = NULL;
87 Monitor* CompileThread_lock = NULL;
88 Monitor* Compilation_lock = NULL;
89 Mutex* CompileTaskAlloc_lock = NULL;
90 Mutex* CompileStatistics_lock = NULL;
91 Mutex* DirectivesStack_lock = NULL;
92 Mutex* MultiArray_lock = NULL;
93 Monitor* Terminator_lock = NULL;
94 Monitor* BeforeExit_lock = NULL;
95 Monitor* Notify_lock = NULL;
96 Mutex* ProfilePrint_lock = NULL;
97 Mutex* ExceptionCache_lock = NULL;
98 Mutex* OsrList_lock = NULL;
99
100 #ifndef PRODUCT
101 Mutex* FullGCALot_lock = NULL;
102 #endif
103
104 Mutex* Debug1_lock = NULL;
187 def(Shared_SATB_Q_lock , PaddedMutex , nonleaf, true, Monitor::_safepoint_check_never);
188
189 def(DirtyCardQ_FL_lock , PaddedMutex , special, true, Monitor::_safepoint_check_never);
190 def(DirtyCardQ_CBL_mon , PaddedMonitor, nonleaf, true, Monitor::_safepoint_check_never);
191 def(Shared_DirtyCardQ_lock , PaddedMutex , nonleaf, 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);
212 def(OopMapCacheAlloc_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_always); // used for oop_map_cache allocation.
213
214 def(Patching_lock , PaddedMutex , special, true, Monitor::_safepoint_check_never); // used for safepointing and code patching.
215 def(Service_lock , PaddedMonitor, special, true, Monitor::_safepoint_check_never); // used for service thread operations
216 def(JmethodIdCreation_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_always); // used for creating jmethodIDs.
217
218 def(SystemDictionary_lock , PaddedMonitor, leaf, true, Monitor::_safepoint_check_always); // lookups done by VM thread
219 def(Module_lock , PaddedMutex , leaf+2, true, Monitor::_safepoint_check_always);
220 def(InlineCacheBuffer_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_always);
221 def(VMStatistic_lock , PaddedMutex , leaf, false, Monitor::_safepoint_check_always);
222 def(ExpandHeap_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_always); // Used during compilation by VM thread
223 def(JNIHandleBlockFreeList_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never); // handles are used by VM thread
224 def(SignatureHandlerLibrary_lock , PaddedMutex , leaf, false, Monitor::_safepoint_check_always);
225 def(SymbolTable_lock , PaddedMutex , leaf+2, true, Monitor::_safepoint_check_always);
226 def(StringTable_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_always);
227 def(ProfilePrint_lock , PaddedMutex , leaf, false, Monitor::_safepoint_check_always); // serial profile printing
228 def(ExceptionCache_lock , PaddedMutex , leaf, false, Monitor::_safepoint_check_always); // serial profile printing
229 def(OsrList_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never);
|