6672698: mangle_unused_area() should not remangle the entire heap at each collection.
Summary: Maintain a high water mark for the allocations in a space and mangle only up to that high water mark.
Reviewed-by: ysr, apetrusenko
//// Copyright 2007 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.// //attachListener.cpp arguments.hppattachListener.cpp attachListener.hppattachListener.cpp globals.hppattachListener.cpp heapDumper.hppattachListener.cpp java.hppattachListener.cpp javaCalls.hppattachListener.cpp javaClasses.hppattachListener.cpp jvmtiExport.hppattachListener.cpp os.hppattachListener.cpp resourceArea.hppattachListener.cpp systemDictionary.hppattachListener.cpp vmGCOperations.hppattachListener_<os_family>.cpp attachListener.hppattachListener_<os_family>.cpp dtraceAttacher.hppattachListener_<os_family>.cpp interfaceSupport.hppattachListener_<os_family>.cpp os.hppdump.cpp classify.hppdump.cpp copy.hppdump.cpp filemap.hppdump.cpp javaCalls.hppdump.cpp javaClasses.hppdump.cpp loaderConstraints.hppdump.cpp methodDataOop.hppdump.cpp oop.hppdump.cpp oopFactory.hppdump.cpp resourceArea.hppdump.cpp signature.hppdump.cpp spaceDecorator.hppdump.cpp symbolTable.hppdump.cpp systemDictionary.hppdump.cpp vmThread.hppdump.cpp vm_operations.hppdump_<arch_model>.cpp assembler_<arch_model>.inline.hppdump_<arch_model>.cpp compactingPermGenGen.hppforte.cpp collectedHeap.inline.hppforte.cpp debugInfoRec.hppforte.cpp forte.hppforte.cpp oop.inline.hppforte.cpp oop.inline2.hppforte.cpp pcDesc.hppforte.cpp space.hppforte.cpp thread.hppforte.cpp universe.inline.hppforte.cpp vframe.hppforte.cpp vframeArray.hppfprofiler.cpp allocation.inline.hppfprofiler.cpp classLoader.hppfprofiler.cpp collectedHeap.inline.hppfprofiler.cpp deoptimization.hppfprofiler.cpp fprofiler.hppfprofiler.cpp interpreter.hppfprofiler.cpp macros.hppfprofiler.cpp mutexLocker.hppfprofiler.cpp oop.inline.hppfprofiler.cpp oop.inline2.hppfprofiler.cpp stubCodeGenerator.hppfprofiler.cpp stubRoutines.hppfprofiler.cpp symbolOop.hppfprofiler.cpp task.hppfprofiler.cpp universe.inline.hppfprofiler.cpp vframe.hppfprofiler.cpp vtableStubs.hppheapDumper.cpp genCollectedHeap.hppheapDumper.cpp heapDumper.hpp heapDumper.cpp javaCalls.hppheapDumper.cpp jniHandles.hppheapDumper.cpp objArrayKlass.hppheapDumper.cpp ostream.hppheapDumper.cpp reflectionUtils.hppheapDumper.cpp symbolTable.hppheapDumper.cpp systemDictionary.hppheapDumper.cpp universe.hppheapDumper.cpp vframe.hppheapDumper.cpp vmGCOperations.hppheapDumper.cpp vmSymbols.hppheapDumper.cpp vmThread.hppheapDumper.cpp vm_operations.hppheapInspection.cpp collectedHeap.hppheapInspection.cpp genCollectedHeap.hppheapInspection.cpp globalDefinitions.hppheapInspection.cpp heapInspection.hppheapInspection.cpp klassOop.hppheapInspection.cpp os.hppheapInspection.cpp resourceArea.hppjniCheck.cpp fieldDescriptor.hppjniCheck.cpp handles.hppjniCheck.cpp instanceKlass.hppjniCheck.cpp interfaceSupport.hppjniCheck.cpp jfieldIDWorkaround.hppjniCheck.cpp jni.hjniCheck.cpp jniCheck.hppjniCheck.cpp jniTypes_<arch>.hppjniCheck.cpp jvm_misc.hppjniCheck.cpp oop.inline.hppjniCheck.cpp symbolOop.hppjniCheck.cpp systemDictionary.hppjniCheck.cpp thread.hppjniCheck.cpp vmSymbols.hppjvmtiCodeBlobEvents.cpp codeBlob.hppjvmtiCodeBlobEvents.cpp codeCache.hppjvmtiCodeBlobEvents.cpp handles.hppjvmtiCodeBlobEvents.cpp handles.inline.hppjvmtiCodeBlobEvents.cpp jvmtiCodeBlobEvents.hppjvmtiCodeBlobEvents.cpp jvmtiExport.hppjvmtiCodeBlobEvents.cpp oop.inline.hppjvmtiCodeBlobEvents.cpp resourceArea.hppjvmtiCodeBlobEvents.cpp scopeDesc.hppjvmtiCodeBlobEvents.cpp vmThread.hppjvmtiCodeBlobEvents.hpp jvmti.hjvmtiExtensions.cpp jvmtiExport.hppjvmtiExtensions.cpp jvmtiExtensions.hppjvmtiExtensions.hpp allocation.hppjvmtiExtensions.hpp jvmti.hjvmtiExtensions.hpp jvmtiEnv.hppjvmtiImpl.cpp exceptions.hppjvmtiImpl.cpp handles.hppjvmtiImpl.cpp handles.inline.hppjvmtiImpl.cpp instanceKlass.hppjvmtiImpl.cpp interfaceSupport.hppjvmtiImpl.cpp interpreter.hppjvmtiImpl.cpp javaCalls.hppjvmtiImpl.cpp jvmtiAgentThread.hppjvmtiImpl.cpp jvmtiEnv.hppjvmtiImpl.cpp jvmtiEventController.inline.hppjvmtiImpl.cpp jvmtiImpl.hppjvmtiImpl.cpp jvmtiRedefineClasses.hppjvmtiImpl.cpp resourceArea.hppjvmtiImpl.cpp signature.hppjvmtiImpl.cpp systemDictionary.hppjvmtiImpl.cpp thread_<os_family>.inline.hppjvmtiImpl.cpp vframe.hppjvmtiImpl.cpp vframe_hp.hppjvmtiImpl.cpp vm_operations.hppjvmtiImpl.hpp jvmti.hjvmtiImpl.hpp jvmtiEnvThreadState.hppjvmtiImpl.hpp jvmtiEventController.hppjvmtiImpl.hpp jvmtiTrace.hppjvmtiImpl.hpp jvmtiUtil.hppjvmtiImpl.hpp objArrayOop.hppjvmtiImpl.hpp stackValueCollection.hppjvmtiImpl.hpp systemDictionary.hppjvmtiImpl.hpp vm_operations.hppjvmtiTagMap.cpp biasedLocking.hppjvmtiTagMap.cpp javaCalls.hppjvmtiTagMap.cpp jniHandles.hppjvmtiTagMap.cpp jvmtiEnv.hppjvmtiTagMap.cpp jvmtiEventController.hppjvmtiTagMap.cpp jvmtiEventController.inline.hppjvmtiTagMap.cpp jvmtiExport.hppjvmtiTagMap.cpp jvmtiImpl.hppjvmtiTagMap.cpp jvmtiTagMap.hppjvmtiTagMap.cpp mutex.hppjvmtiTagMap.cpp mutexLocker.hppjvmtiTagMap.cpp objArrayKlass.hppjvmtiTagMap.cpp oop.inline2.hppjvmtiTagMap.cpp reflectionUtils.hppjvmtiTagMap.cpp serviceUtil.hppjvmtiTagMap.cpp symbolTable.hppjvmtiTagMap.cpp systemDictionary.hppjvmtiTagMap.cpp vframe.hppjvmtiTagMap.cpp vmSymbols.hppjvmtiTagMap.cpp vmThread.hppjvmtiTagMap.cpp vm_operations.hppjvmtiTagMap.hpp allocation.hppjvmtiTagMap.hpp collectedHeap.hppjvmtiTagMap.hpp genCollectedHeap.hppjvmtiTagMap.hpp jvmti.hjvmtiTagMap.hpp jvmtiEnv.hppjvmtiTagMap.hpp universe.hppjvmtiTrace.cpp jvmtiEnv.hppjvmtiTrace.cpp jvmtiTrace.hppjvmtiTrace.hpp jvmti.hjvmtiTrace.hpp jvmtiEnvThreadState.hppjvmtiTrace.hpp jvmtiEventController.hppjvmtiTrace.hpp jvmtiUtil.hppjvmtiTrace.hpp objArrayOop.hppjvmtiTrace.hpp stackValueCollection.hppjvmtiTrace.hpp systemDictionary.hppjvmtiTrace.hpp vm_operations.hpprestore.cpp filemap.hpprestore.cpp hashtable.inline.hpprestore.cpp oop.inline.hpprestore.cpp symbolTable.hpprestore.cpp systemDictionary.hppserialize.cpp classify.hppserialize.cpp codeCache.hppserialize.cpp compactingPermGenGen.hppserialize.cpp compiledICHolderOop.hppserialize.cpp methodDataOop.hppserialize.cpp objArrayOop.hppserialize.cpp oop.hppserialize.cpp symbolTable.hppserialize.cpp systemDictionary.hppvmStructs.cpp arguments.hppvmStructs.cpp arrayKlass.hppvmStructs.cpp arrayKlassKlass.hppvmStructs.cpp arrayOop.hppvmStructs.cpp bytecodes.hppvmStructs.cpp bytecodeInterpreter.hppvmStructs.cpp cardTableRS.hppvmStructs.cpp codeBlob.hppvmStructs.cpp codeCache.hppvmStructs.cpp collectedHeap.hppvmStructs.cpp compactPermGen.hppvmStructs.cpp compiledICHolderKlass.hppvmStructs.cpp compiledICHolderOop.hppvmStructs.cpp compressedStream.hppvmStructs.cpp constMethodKlass.hppvmStructs.cpp constMethodOop.hppvmStructs.cpp constantPoolKlass.hppvmStructs.cpp constantPoolOop.hppvmStructs.cpp cpCacheKlass.hppvmStructs.cpp cpCacheOop.hppvmStructs.cpp defNewGeneration.hppvmStructs.cpp dictionary.hppvmStructs.cpp freeBlockDictionary.hppvmStructs.cpp genCollectedHeap.hppvmStructs.cpp generation.hppvmStructs.cpp generationSpec.hppvmStructs.cpp globalDefinitions.hppvmStructs.cpp globals.hppvmStructs.cpp hashtable.hppvmStructs.cpp heap.hppvmStructs.cpp immutableSpace.hppvmStructs.cpp instanceKlass.hppvmStructs.cpp instanceKlassKlass.hppvmStructs.cpp instanceOop.hppvmStructs.cpp interpreter.hppvmStructs.cpp java.hppvmStructs.cpp javaCalls.hppvmStructs.cpp javaClasses.hppvmStructs.cpp jvmtiAgentThread.hppvmStructs.cpp klass.hppvmStructs.cpp klassOop.hppvmStructs.cpp loaderConstraints.hppvmStructs.cpp location.hppvmStructs.cpp markOop.hppvmStructs.cpp markSweep.hppvmStructs.cpp methodDataKlass.hppvmStructs.cpp methodDataOop.hppvmStructs.cpp methodKlass.hppvmStructs.cpp methodOop.hppvmStructs.cpp mutableSpace.hppvmStructs.cpp nmethod.hppvmStructs.cpp objArrayKlass.hppvmStructs.cpp objArrayKlassKlass.hppvmStructs.cpp objArrayOop.hppvmStructs.cpp oop.hppvmStructs.cpp oopMap.hppvmStructs.cpp pcDesc.hppvmStructs.cpp perfMemory.hppvmStructs.cpp permGen.hppvmStructs.cpp placeholders.hppvmStructs.cpp sharedRuntime.hppvmStructs.cpp space.hppvmStructs.cpp stubRoutines.hppvmStructs.cpp stubs.hppvmStructs.cpp symbolKlass.hppvmStructs.cpp symbolOop.hppvmStructs.cpp symbolTable.hppvmStructs.cpp systemDictionary.hppvmStructs.cpp tenuredGeneration.hppvmStructs.cpp thread_<os_family>.inline.hppvmStructs.cpp typeArrayKlass.hppvmStructs.cpp typeArrayKlassKlass.hppvmStructs.cpp typeArrayOop.hppvmStructs.cpp universe.hppvmStructs.cpp virtualspace.hppvmStructs.cpp vmStructs.hppvmStructs.cpp vmStructs_<arch>.hppvmStructs.cpp vmStructs_<os_arch>.hppvmStructs.cpp vmreg.hppvmStructs.cpp watermark.hppvmStructs.hpp debug.hpp