4360113: Evict nmethods when code cache gets full
Summary: Speculatively unload the oldest nmethods when code cache gets full.
Reviewed-by: never, kvn
Contributed-by: eric.caspole@amd.com
//
// Copyright 2007-2009 Sun Microsystems, Inc. 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
// under the terms of the GNU General Public License version 2 only, as
// published by the Free Software Foundation.
//
// This code is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
// version 2 for more details (a copy is included in the LICENSE file that
// accompanied this code).
//
// You should have received a copy of the GNU General Public License version
// 2 along with this work; if not, write to the Free Software Foundation,
// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
//
// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// have any questions.
//
//
jvmtiAgentThread.hpp jvmtiEnv.hpp
jvmtiClassFileReconstituter.cpp bytecodeStream.hpp
jvmtiClassFileReconstituter.cpp bytes_<arch>.hpp
jvmtiClassFileReconstituter.cpp jvmtiClassFileReconstituter.hpp
jvmtiClassFileReconstituter.cpp symbolTable.hpp
jvmtiClassFileReconstituter.cpp signature.hpp
jvmtiClassFileReconstituter.hpp jvmtiEnv.hpp
// jvmtiCodeBlobEvents is jck optional, please put deps in includeDB_features
jvmtiEnter.cpp jvmtiEnter.hpp
jvmtiEnter.cpp jvmtiUtil.hpp
jvmtiEnter.hpp interfaceSupport.hpp
jvmtiEnter.hpp jvmtiEnv.hpp
jvmtiEnter.hpp jvmtiImpl.hpp
jvmtiEnter.hpp resourceArea.hpp
jvmtiEnter.hpp systemDictionary.hpp
jvmtiEnterTrace.cpp jvmtiEnter.hpp
jvmtiEnterTrace.cpp jvmtiUtil.hpp
jvmtiEnv.cpp arguments.hpp
jvmtiEnv.cpp bytecodeStream.hpp
jvmtiEnv.cpp cpCacheOop.hpp
jvmtiEnv.cpp deoptimization.hpp
jvmtiEnv.cpp exceptions.hpp
jvmtiEnv.cpp instanceKlass.hpp
jvmtiEnv.cpp interfaceSupport.hpp
jvmtiEnv.cpp interpreter.hpp
jvmtiEnv.cpp javaCalls.hpp
jvmtiEnv.cpp jfieldIDWorkaround.hpp
jvmtiEnv.cpp jniCheck.hpp
jvmtiEnv.cpp jvm_misc.hpp
jvmtiEnv.cpp jvmtiAgentThread.hpp
jvmtiEnv.cpp jvmtiClassFileReconstituter.hpp
jvmtiEnv.cpp jvmtiCodeBlobEvents.hpp
jvmtiEnv.cpp jvmtiEnv.hpp
jvmtiEnv.cpp jvmtiExtensions.hpp
jvmtiEnv.cpp jvmtiGetLoadedClasses.hpp
jvmtiEnv.cpp jvmtiImpl.hpp
jvmtiEnv.cpp jvmtiManageCapabilities.hpp
jvmtiEnv.cpp jvmtiRedefineClasses.hpp
jvmtiEnv.cpp jvmtiTagMap.hpp
jvmtiEnv.cpp jvmtiThreadState.inline.hpp
jvmtiEnv.cpp jvmtiUtil.hpp
jvmtiEnv.cpp objectMonitor.inline.hpp
jvmtiEnv.cpp osThread.hpp
jvmtiEnv.cpp preserveException.hpp
jvmtiEnv.cpp reflectionUtils.hpp
jvmtiEnv.cpp resourceArea.hpp
jvmtiEnv.cpp signature.hpp
jvmtiEnv.cpp systemDictionary.hpp
jvmtiEnv.cpp threadService.hpp
jvmtiEnv.cpp thread_<os_family>.inline.hpp
jvmtiEnv.cpp universe.inline.hpp
jvmtiEnv.cpp vframe.hpp
jvmtiEnv.cpp vmSymbols.hpp
jvmtiEnv.cpp vmThread.hpp
jvmtiEnv.hpp jvmtiEnvBase.hpp
jvmtiEnvBase.cpp biasedLocking.hpp
jvmtiEnvBase.cpp interfaceSupport.hpp
jvmtiEnvBase.cpp jfieldIDWorkaround.hpp
jvmtiEnvBase.cpp jvmtiEnv.hpp
jvmtiEnvBase.cpp jvmtiEnvBase.hpp
jvmtiEnvBase.cpp jvmtiEventController.inline.hpp
jvmtiEnvBase.cpp jvmtiExtensions.hpp
jvmtiEnvBase.cpp jvmtiImpl.hpp
jvmtiEnvBase.cpp jvmtiManageCapabilities.hpp
jvmtiEnvBase.cpp jvmtiTagMap.hpp
jvmtiEnvBase.cpp jvmtiThreadState.inline.hpp
jvmtiEnvBase.cpp objArrayKlass.hpp
jvmtiEnvBase.cpp objArrayOop.hpp
jvmtiEnvBase.cpp objectMonitor.hpp
jvmtiEnvBase.cpp objectMonitor.inline.hpp
jvmtiEnvBase.cpp signature.hpp
jvmtiEnvBase.cpp systemDictionary.hpp
jvmtiEnvBase.cpp vframe.hpp
jvmtiEnvBase.cpp vframe_hp.hpp
jvmtiEnvBase.cpp vmThread.hpp
jvmtiEnvBase.cpp vm_operations.hpp
jvmtiEnvBase.hpp classLoader.hpp
jvmtiEnvBase.hpp fieldDescriptor.hpp
jvmtiEnvBase.hpp frame.hpp
jvmtiEnvBase.hpp growableArray.hpp
jvmtiEnvBase.hpp handles.inline.hpp
jvmtiEnvBase.hpp jvmtiEnvThreadState.hpp
jvmtiEnvBase.hpp jvmtiEventController.hpp
jvmtiEnvBase.hpp jvmtiThreadState.hpp
jvmtiEnvBase.hpp thread.hpp
jvmtiEnvBase.hpp vm_operations.hpp
jvmtiEnvThreadState.cpp handles.hpp
jvmtiEnvThreadState.cpp handles.inline.hpp
jvmtiEnvThreadState.cpp interfaceSupport.hpp
jvmtiEnvThreadState.cpp interpreter.hpp
jvmtiEnvThreadState.cpp javaCalls.hpp
jvmtiEnvThreadState.cpp jvmtiEnv.hpp
jvmtiEnvThreadState.cpp jvmtiEnvThreadState.hpp
jvmtiEnvThreadState.cpp jvmtiEventController.inline.hpp
jvmtiEnvThreadState.cpp jvmtiImpl.hpp
jvmtiEnvThreadState.cpp resourceArea.hpp
jvmtiEnvThreadState.cpp signature.hpp
jvmtiEnvThreadState.cpp systemDictionary.hpp
jvmtiEnvThreadState.cpp vframe.hpp
jvmtiEnvThreadState.cpp vm_operations.hpp
jvmtiEnvThreadState.hpp allocation.hpp
jvmtiEnvThreadState.hpp allocation.inline.hpp
jvmtiEnvThreadState.hpp globalDefinitions.hpp
jvmtiEnvThreadState.hpp growableArray.hpp
jvmtiEnvThreadState.hpp instanceKlass.hpp
jvmtiEnvThreadState.hpp jvmti.h
jvmtiEnvThreadState.hpp jvmtiEventController.hpp
jvmtiEventController.cpp frame.hpp
jvmtiEventController.cpp interpreter.hpp
jvmtiEventController.cpp jvmtiEnv.hpp
jvmtiEventController.cpp jvmtiEventController.hpp
jvmtiEventController.cpp jvmtiEventController.inline.hpp
jvmtiEventController.cpp jvmtiExport.hpp
jvmtiEventController.cpp jvmtiImpl.hpp
jvmtiEventController.cpp jvmtiThreadState.inline.hpp
jvmtiEventController.cpp resourceArea.hpp
jvmtiEventController.cpp thread.hpp
jvmtiEventController.cpp vframe.hpp
jvmtiEventController.cpp vframe_hp.hpp
jvmtiEventController.cpp vmThread.hpp
jvmtiEventController.cpp vm_operations.hpp
jvmtiEventController.hpp allocation.hpp
jvmtiEventController.hpp allocation.inline.hpp
jvmtiEventController.hpp globalDefinitions.hpp
jvmtiEventController.hpp jvmti.h
jvmtiEventController.inline.hpp jvmtiEventController.hpp
jvmtiEventController.inline.hpp jvmtiImpl.hpp
jvmtiEventController.inline.hpp jvmtiUtil.hpp
jvmtiExport.cpp arguments.hpp
jvmtiExport.cpp attachListener.hpp
jvmtiExport.cpp handles.hpp
jvmtiExport.cpp interfaceSupport.hpp
jvmtiExport.cpp interpreter.hpp
jvmtiExport.cpp jvmtiCodeBlobEvents.hpp
jvmtiExport.cpp jvmtiEnv.hpp
jvmtiExport.cpp jvmtiEventController.hpp
jvmtiExport.cpp jvmtiEventController.inline.hpp
jvmtiExport.cpp jvmtiExport.hpp
jvmtiExport.cpp jvmtiImpl.hpp
jvmtiExport.cpp jvmtiManageCapabilities.hpp
jvmtiExport.cpp jvmtiTagMap.hpp
jvmtiExport.cpp jvmtiThreadState.inline.hpp
jvmtiExport.cpp nmethod.hpp
jvmtiExport.cpp objArrayKlass.hpp
jvmtiExport.cpp objArrayOop.hpp
jvmtiExport.cpp objectMonitor.inline.hpp
jvmtiExport.cpp pcDesc.hpp
jvmtiExport.cpp resourceArea.hpp
jvmtiExport.cpp scopeDesc.hpp
jvmtiExport.cpp serviceUtil.hpp
jvmtiExport.cpp systemDictionary.hpp
jvmtiExport.cpp thread.hpp
jvmtiExport.cpp vframe.hpp
// jvmtiExtensions is jck optional, please put deps in includeDB_features
jvmtiGetLoadedClasses.cpp jvmtiGetLoadedClasses.hpp
jvmtiGetLoadedClasses.cpp systemDictionary.hpp
jvmtiGetLoadedClasses.cpp thread.hpp
jvmtiGetLoadedClasses.cpp universe.inline.hpp
jvmtiGetLoadedClasses.hpp jvmtiEnv.hpp
// jvmtiImpl is jck optional, please put deps in includeDB_features
jvmtiManageCapabilities.cpp jvmtiEnv.hpp
jvmtiManageCapabilities.cpp jvmtiExport.hpp
jvmtiManageCapabilities.cpp jvmtiManageCapabilities.hpp
jvmtiManageCapabilities.hpp allocation.hpp
jvmtiManageCapabilities.hpp jvmti.h
jvmtiRedefineClasses.cpp bitMap.inline.hpp
jvmtiRedefineClasses.cpp codeCache.hpp
jvmtiRedefineClasses.cpp deoptimization.hpp
jvmtiRedefineClasses.cpp gcLocker.hpp
jvmtiRedefineClasses.cpp jvmtiImpl.hpp
jvmtiRedefineClasses.cpp jvmtiRedefineClasses.hpp
jvmtiRedefineClasses.cpp klassVtable.hpp
jvmtiRedefineClasses.cpp methodComparator.hpp
jvmtiRedefineClasses.cpp oopMapCache.hpp
jvmtiRedefineClasses.cpp relocator.hpp
jvmtiRedefineClasses.cpp rewriter.hpp
jvmtiRedefineClasses.cpp systemDictionary.hpp
jvmtiRedefineClasses.cpp universe.inline.hpp
jvmtiRedefineClasses.cpp verifier.hpp
jvmtiRedefineClasses.hpp jvmtiEnv.hpp
jvmtiRedefineClasses.hpp jvmtiRedefineClassesTrace.hpp
jvmtiRedefineClasses.hpp objArrayKlass.hpp
jvmtiRedefineClasses.hpp objArrayOop.hpp
jvmtiRedefineClasses.hpp oopFactory.hpp
jvmtiRedefineClasses.hpp resourceArea.hpp
jvmtiRedefineClasses.hpp vm_operations.hpp
// jvmtiTagMap is jck optional, please put deps in includeDB_features
// jvmtiTrace is jck optional, please put deps in includeDB_features
jvmtiThreadState.cpp gcLocker.hpp
jvmtiThreadState.cpp jvmtiEnv.hpp
jvmtiThreadState.cpp jvmtiEventController.inline.hpp
jvmtiThreadState.cpp jvmtiImpl.hpp
jvmtiThreadState.cpp jvmtiThreadState.inline.hpp
jvmtiThreadState.cpp resourceArea.hpp
jvmtiThreadState.cpp vframe.hpp
jvmtiThreadState.inline.hpp jvmtiEnvThreadState.hpp
jvmtiThreadState.inline.hpp jvmtiThreadState.hpp
jvmtiUtil.cpp exceptions.hpp
jvmtiUtil.cpp handles.hpp
jvmtiUtil.cpp handles.inline.hpp
jvmtiUtil.cpp interfaceSupport.hpp
jvmtiUtil.cpp jvmtiUtil.hpp
jvmtiUtil.cpp vm_operations.hpp
jvmtiUtil.hpp jvmti.h
jvmtiUtil.hpp jvmtiEventController.hpp
jvmtiUtil.hpp resourceArea.hpp