Mon, 02 Aug 2010 12:51:43 -0700
6814437: G1: remove the _new_refs array
Summary: The per-worker _new_refs array is used to hold references that point into the collection set. It is populated during RSet updating and subsequently processed. In the event of an evacuation failure it processed again to recreate the RSets of regions in the collection set. Remove the per-worker _new_refs array by processing the references directly. Use a DirtyCardQueue to hold the cards containing the references so that the RSets of regions in the collection set can be recreated when handling an evacuation failure.
Reviewed-by: iveresov, jmasa, tonyp
duke@435 | 1 | // |
trims@1907 | 2 | // Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. |
duke@435 | 3 | // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
duke@435 | 4 | // |
duke@435 | 5 | // This code is free software; you can redistribute it and/or modify it |
duke@435 | 6 | // under the terms of the GNU General Public License version 2 only, as |
duke@435 | 7 | // published by the Free Software Foundation. |
duke@435 | 8 | // |
duke@435 | 9 | // This code is distributed in the hope that it will be useful, but WITHOUT |
duke@435 | 10 | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
duke@435 | 11 | // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
duke@435 | 12 | // version 2 for more details (a copy is included in the LICENSE file that |
duke@435 | 13 | // accompanied this code). |
duke@435 | 14 | // |
duke@435 | 15 | // You should have received a copy of the GNU General Public License version |
duke@435 | 16 | // 2 along with this work; if not, write to the Free Software Foundation, |
duke@435 | 17 | // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
duke@435 | 18 | // |
trims@1907 | 19 | // Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
trims@1907 | 20 | // or visit www.oracle.com if you need additional information or have any |
trims@1907 | 21 | // questions. |
duke@435 | 22 | // |
duke@435 | 23 | // |
duke@435 | 24 | |
duke@435 | 25 | adaptiveSizePolicy.hpp collectedHeap.hpp |
duke@435 | 26 | adaptiveSizePolicy.hpp gcCause.hpp |
duke@435 | 27 | adaptiveSizePolicy.hpp gcUtil.hpp |
duke@435 | 28 | adaptiveSizePolicy.hpp allocation.hpp |
duke@435 | 29 | adaptiveSizePolicy.hpp universe.hpp |
duke@435 | 30 | |
duke@435 | 31 | adaptiveSizePolicy.cpp adaptiveSizePolicy.hpp |
jmasa@1822 | 32 | adaptiveSizePolicy.cpp collectorPolicy.hpp |
duke@435 | 33 | adaptiveSizePolicy.cpp gcCause.hpp |
duke@435 | 34 | adaptiveSizePolicy.cpp ostream.hpp |
duke@435 | 35 | adaptiveSizePolicy.cpp timer.hpp |
duke@435 | 36 | |
duke@435 | 37 | ageTable.cpp ageTable.hpp |
duke@435 | 38 | ageTable.cpp collectorPolicy.hpp |
duke@435 | 39 | ageTable.cpp copy.hpp |
duke@435 | 40 | ageTable.cpp gcPolicyCounters.hpp |
duke@435 | 41 | ageTable.cpp resourceArea.hpp |
duke@435 | 42 | ageTable.cpp sharedHeap.hpp |
duke@435 | 43 | |
duke@435 | 44 | ageTable.hpp markOop.hpp |
duke@435 | 45 | ageTable.hpp oop.hpp |
duke@435 | 46 | ageTable.hpp perfData.hpp |
duke@435 | 47 | |
duke@435 | 48 | collectorCounters.cpp collectorCounters.hpp |
duke@435 | 49 | collectorCounters.cpp resourceArea.hpp |
duke@435 | 50 | |
duke@435 | 51 | collectorCounters.hpp perfData.hpp |
duke@435 | 52 | |
duke@435 | 53 | cSpaceCounters.cpp resourceArea.hpp |
duke@435 | 54 | cSpaceCounters.cpp cSpaceCounters.hpp |
duke@435 | 55 | |
duke@435 | 56 | cSpaceCounters.hpp space.inline.hpp |
duke@435 | 57 | cSpaceCounters.hpp perfData.hpp |
duke@435 | 58 | cSpaceCounters.hpp generationCounters.hpp |
duke@435 | 59 | |
duke@435 | 60 | gcPolicyCounters.cpp resourceArea.hpp |
duke@435 | 61 | gcPolicyCounters.cpp gcPolicyCounters.hpp |
duke@435 | 62 | |
duke@435 | 63 | gcPolicyCounters.hpp perfData.hpp |
duke@435 | 64 | |
duke@435 | 65 | gcStats.cpp gcStats.hpp |
duke@435 | 66 | gcStats.cpp gcUtil.hpp |
duke@435 | 67 | |
duke@435 | 68 | gcStats.hpp gcUtil.hpp |
duke@435 | 69 | |
duke@435 | 70 | gcUtil.cpp gcUtil.hpp |
duke@435 | 71 | |
duke@435 | 72 | gcUtil.hpp allocation.hpp |
duke@435 | 73 | gcUtil.hpp debug.hpp |
duke@435 | 74 | gcUtil.hpp globalDefinitions.hpp |
ysr@1580 | 75 | gcUtil.hpp ostream.hpp |
duke@435 | 76 | gcUtil.hpp timer.hpp |
duke@435 | 77 | |
duke@435 | 78 | generationCounters.cpp generationCounters.hpp |
duke@435 | 79 | generationCounters.cpp resourceArea.hpp |
duke@435 | 80 | |
duke@435 | 81 | generationCounters.hpp perfData.hpp |
duke@435 | 82 | generationCounters.hpp virtualspace.hpp |
duke@435 | 83 | |
duke@435 | 84 | immutableSpace.hpp iterator.hpp |
duke@435 | 85 | |
duke@435 | 86 | liveRange.hpp copy.hpp |
duke@435 | 87 | liveRange.hpp memRegion.hpp |
duke@435 | 88 | |
duke@435 | 89 | markSweep.cpp collectedHeap.inline.hpp |
duke@435 | 90 | markSweep.cpp markSweep.inline.hpp |
duke@435 | 91 | markSweep.cpp oop.inline.hpp |
duke@435 | 92 | |
duke@435 | 93 | markSweep.hpp growableArray.hpp |
duke@435 | 94 | markSweep.hpp markOop.hpp |
duke@435 | 95 | markSweep.hpp oop.hpp |
duke@435 | 96 | markSweep.hpp timer.hpp |
duke@435 | 97 | markSweep.hpp universe.hpp |
duke@435 | 98 | |
duke@435 | 99 | markSweep.inline.hpp collectedHeap.hpp |
duke@435 | 100 | markSweep.inline.hpp markSweep.hpp |
duke@435 | 101 | |
duke@435 | 102 | mutableSpace.hpp immutableSpace.hpp |
duke@435 | 103 | mutableSpace.hpp memRegion.hpp |
duke@435 | 104 | mutableSpace.hpp copy.hpp |
duke@435 | 105 | |
duke@435 | 106 | vmGCOperations.cpp vmGCOperations.hpp |
duke@435 | 107 | vmGCOperations.cpp dtrace.hpp |
duke@435 | 108 | vmGCOperations.cpp classLoader.hpp |
duke@435 | 109 | vmGCOperations.cpp gcLocker.inline.hpp |
duke@435 | 110 | vmGCOperations.cpp genCollectedHeap.hpp |
duke@435 | 111 | vmGCOperations.cpp handles.inline.hpp |
duke@435 | 112 | vmGCOperations.cpp init.hpp |
duke@435 | 113 | vmGCOperations.cpp instanceKlass.hpp |
duke@435 | 114 | vmGCOperations.cpp instanceRefKlass.hpp |
duke@435 | 115 | vmGCOperations.cpp interfaceSupport.hpp |
duke@435 | 116 | vmGCOperations.cpp javaClasses.hpp |
duke@435 | 117 | vmGCOperations.cpp jvmtiExport.hpp |
duke@435 | 118 | vmGCOperations.cpp oopFactory.hpp |
duke@435 | 119 | vmGCOperations.cpp preserveException.hpp |
duke@435 | 120 | |
duke@435 | 121 | vmGCOperations.hpp vm_operations.hpp |
duke@435 | 122 | vmGCOperations.hpp heapInspection.hpp |
duke@435 | 123 | vmGCOperations.hpp handles.hpp |
duke@435 | 124 | vmGCOperations.hpp jniHandles.hpp |
duke@435 | 125 | vmGCOperations.hpp synchronizer.hpp |