Wed, 06 Feb 2013 14:50:37 -0800
7052429: G1: Avoid unnecessary scanning of humongous regions during concurrent marking
Summary: Skip unnecessary scanning of bitmap for unmarked humongous objects/regions.
Reviewed-by: jwilhelm, johnc
Contributed-by: Tao Mao <tao.mao@oracle.com>
jprovino@4165 | 1 | # |
jprovino@4165 | 2 | # Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. |
jprovino@4165 | 3 | # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
jprovino@4165 | 4 | # |
jprovino@4165 | 5 | # This code is free software; you can redistribute it and/or modify it |
jprovino@4165 | 6 | # under the terms of the GNU General Public License version 2 only, as |
jprovino@4165 | 7 | # published by the Free Software Foundation. |
jprovino@4165 | 8 | # |
jprovino@4165 | 9 | # This code is distributed in the hope that it will be useful, but WITHOUT |
jprovino@4165 | 10 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
jprovino@4165 | 11 | # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
jprovino@4165 | 12 | # version 2 for more details (a copy is included in the LICENSE file that |
jprovino@4165 | 13 | # accompanied this code). |
jprovino@4165 | 14 | # |
jprovino@4165 | 15 | # You should have received a copy of the GNU General Public License version |
jprovino@4165 | 16 | # 2 along with this work; if not, write to the Free Software Foundation, |
jprovino@4165 | 17 | # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
jprovino@4165 | 18 | # |
jprovino@4165 | 19 | # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
jprovino@4165 | 20 | # or visit www.oracle.com if you need additional information or have any |
jprovino@4165 | 21 | # questions. |
jprovino@4165 | 22 | # |
jprovino@4165 | 23 | # |
jprovino@4165 | 24 | ifeq ($(INCLUDE_JVMTI), false) |
jprovino@4165 | 25 | CXXFLAGS += -DINCLUDE_JVMTI=0 |
jprovino@4165 | 26 | CFLAGS += -DINCLUDE_JVMTI=0 |
jprovino@4165 | 27 | |
jprovino@4165 | 28 | Src_Files_EXCLUDE += jvmtiGetLoadedClasses.cpp forte.cpp jvmtiThreadState.cpp jvmtiExtensions.cpp \ |
jprovino@4165 | 29 | jvmtiImpl.cpp jvmtiManageCapabilities.cpp jvmtiRawMonitor.cpp jvmtiUtil.cpp jvmtiTrace.cpp \ |
jprovino@4165 | 30 | jvmtiCodeBlobEvents.cpp jvmtiEnv.cpp jvmtiRedefineClasses.cpp jvmtiEnvBase.cpp jvmtiEnvThreadState.cpp \ |
jprovino@4165 | 31 | jvmtiTagMap.cpp jvmtiEventController.cpp evmCompat.cpp jvmtiEnter.xsl jvmtiExport.cpp |
jprovino@4165 | 32 | endif |
jprovino@4165 | 33 | |
jprovino@4165 | 34 | ifeq ($(INCLUDE_FPROF), false) |
jprovino@4165 | 35 | CXXFLAGS += -DINCLUDE_FPROF=0 |
jprovino@4165 | 36 | CFLAGS += -DINCLUDE_FPROF=0 |
jprovino@4165 | 37 | |
jprovino@4165 | 38 | Src_Files_EXCLUDE += fprofiler.cpp |
jprovino@4165 | 39 | endif |
jprovino@4165 | 40 | |
jprovino@4165 | 41 | ifeq ($(INCLUDE_VM_STRUCTS), false) |
jprovino@4165 | 42 | CXXFLAGS += -DINCLUDE_VM_STRUCTS=0 |
jprovino@4165 | 43 | CFLAGS += -DINCLUDE_VM_STRUCTS=0 |
jprovino@4165 | 44 | |
jprovino@4165 | 45 | Src_Files_EXCLUDE += vmStructs.cpp |
jprovino@4165 | 46 | endif |
jprovino@4165 | 47 | |
jprovino@4165 | 48 | ifeq ($(INCLUDE_JNI_CHECK), false) |
jprovino@4165 | 49 | CXXFLAGS += -DINCLUDE_JNI_CHECK=0 |
jprovino@4165 | 50 | CFLAGS += -DINCLUDE_JNI_CHECK=0 |
jprovino@4165 | 51 | |
jprovino@4165 | 52 | Src_Files_EXCLUDE += jniCheck.cpp |
jprovino@4165 | 53 | endif |
jprovino@4165 | 54 | |
jprovino@4165 | 55 | ifeq ($(INCLUDE_SERVICES), false) |
jprovino@4165 | 56 | CXXFLAGS += -DINCLUDE_SERVICES=0 |
jprovino@4165 | 57 | CFLAGS += -DINCLUDE_SERVICES=0 |
jprovino@4165 | 58 | |
jprovino@4165 | 59 | Src_Files_EXCLUDE += heapDumper.cpp heapInspection.cpp \ |
jprovino@4165 | 60 | attachListener_linux.cpp attachListener.cpp |
jprovino@4165 | 61 | endif |
jprovino@4165 | 62 | |
jprovino@4165 | 63 | ifeq ($(INCLUDE_MANAGEMENT), false) |
jprovino@4165 | 64 | CXXFLAGS += -DINCLUDE_MANAGEMENT=0 |
jprovino@4165 | 65 | CFLAGS += -DINCLUDE_MANAGEMENT=0 |
jprovino@4165 | 66 | endif |
jprovino@4165 | 67 | |
jprovino@4165 | 68 | ifeq ($(INCLUDE_CDS), false) |
jprovino@4165 | 69 | CXXFLAGS += -DINCLUDE_CDS=0 |
jprovino@4165 | 70 | CFLAGS += -DINCLUDE_CDS=0 |
jprovino@4165 | 71 | |
jprovino@4165 | 72 | Src_Files_EXCLUDE += metaspaceShared.cpp |
jprovino@4165 | 73 | endif |
jprovino@4165 | 74 | |
jprovino@4165 | 75 | ifeq ($(INCLUDE_ALTERNATE_GCS), false) |
jprovino@4165 | 76 | CXXFLAGS += -DINCLUDE_ALTERNATE_GCS=0 |
jprovino@4165 | 77 | CFLAGS += -DINCLUDE_ALTERNATE_GCS=0 |
jprovino@4165 | 78 | |
jprovino@4165 | 79 | CXXFLAGS += -DSERIALGC |
jprovino@4165 | 80 | CFLAGS += -DSERIALGC |
jprovino@4165 | 81 | Src_Files_EXCLUDE += \ |
jmasa@4196 | 82 | cmsAdaptiveSizePolicy.cpp cmsCollectorPolicy.cpp \ |
jprovino@4165 | 83 | cmsGCAdaptivePolicyCounters.cpp cmsLockVerifier.cpp cmsPermGen.cpp compactibleFreeListSpace.cpp \ |
jmasa@4196 | 84 | concurrentMarkSweepGeneration.cpp concurrentMarkSweepThread.cpp \ |
jmasa@4196 | 85 | freeChunk.cpp adaptiveFreeList.cpp promotionInfo.cpp vmCMSOperations.cpp collectionSetChooser.cpp \ |
jprovino@4165 | 86 | concurrentG1Refine.cpp concurrentG1RefineThread.cpp concurrentMark.cpp concurrentMarkThread.cpp \ |
jprovino@4165 | 87 | dirtyCardQueue.cpp g1AllocRegion.cpp g1BlockOffsetTable.cpp g1CollectedHeap.cpp g1GCPhaseTimes.cpp \ |
jprovino@4165 | 88 | g1CollectorPolicy.cpp g1ErgoVerbose.cpp g1_globals.cpp g1HRPrinter.cpp g1MarkSweep.cpp \ |
jprovino@4165 | 89 | g1MMUTracker.cpp g1MonitoringSupport.cpp g1RemSet.cpp g1SATBCardTableModRefBS.cpp heapRegion.cpp \ |
jprovino@4165 | 90 | heapRegionRemSet.cpp heapRegionSeq.cpp heapRegionSet.cpp heapRegionSets.cpp ptrQueue.cpp \ |
jprovino@4165 | 91 | satbQueue.cpp sparsePRT.cpp survRateGroup.cpp vm_operations_g1.cpp adjoiningGenerations.cpp \ |
jprovino@4165 | 92 | adjoiningVirtualSpaces.cpp asPSOldGen.cpp asPSYoungGen.cpp cardTableExtension.cpp \ |
jprovino@4165 | 93 | gcTaskManager.cpp gcTaskThread.cpp objectStartArray.cpp parallelScavengeHeap.cpp parMarkBitMap.cpp \ |
jprovino@4165 | 94 | pcTasks.cpp psAdaptiveSizePolicy.cpp psCompactionManager.cpp psGCAdaptivePolicyCounters.cpp \ |
jprovino@4165 | 95 | psGenerationCounters.cpp psMarkSweep.cpp psMarkSweepDecorator.cpp psOldGen.cpp psParallelCompact.cpp \ |
jprovino@4165 | 96 | psPermGen.cpp psPromotionLAB.cpp psPromotionManager.cpp psScavenge.cpp psTasks.cpp psVirtualspace.cpp \ |
jprovino@4165 | 97 | psYoungGen.cpp vmPSOperations.cpp asParNewGeneration.cpp parCardTableModRefBS.cpp \ |
jprovino@4165 | 98 | parGCAllocBuffer.cpp parNewGeneration.cpp mutableSpace.cpp gSpaceCounters.cpp allocationStats.cpp \ |
jprovino@4165 | 99 | spaceCounters.cpp gcAdaptivePolicyCounters.cpp mutableNUMASpace.cpp immutableSpace.cpp \ |
jprovino@4165 | 100 | immutableSpace.cpp g1MemoryPool.cpp psMemoryPool.cpp yieldWorkingGroup.cpp g1Log.cpp |
jprovino@4165 | 101 | endif |
jprovino@4165 | 102 | |
jprovino@4165 | 103 | ifeq ($(INCLUDE_NMT), false) |
jprovino@4165 | 104 | CXXFLAGS += -DINCLUDE_NMT=0 |
jprovino@4165 | 105 | CFLAGS += -DINCLUDE_NMT=0 |
jprovino@4165 | 106 | |
jprovino@4165 | 107 | Src_Files_EXCLUDE += \ |
jprovino@4165 | 108 | memBaseline.cpp memPtr.cpp memRecorder.cpp memReporter.cpp memSnapshot.cpp memTrackWorker.cpp \ |
jprovino@4165 | 109 | memTracker.cpp nmtDCmd.cpp |
jprovino@4165 | 110 | endif |