public class MS extends StopTheWorld
All plans make a clear distinction between global and thread-local activities, and divides global and local state into separate class hierarchies. Global activities must be synchronized, whereas no synchronization is required for thread-local activities. There is a single instance of Plan (or the appropriate sub-class), and a 1:1 mapping of PlanLocal to "kernel threads" (aka CPUs). Thus instance methods of PlanLocal allow fast, unsychronized access to functions such as allocation and collection.
The global instance defines and manages static resources (such as memory and virtual memory resources). This mapping of threads to instances is crucial to understanding the correctness and performance properties of MMTk plans.
| Modifier and Type | Field and Description |
|---|---|
static int |
MARK_SWEEP |
static MarkSweepSpace |
msSpace |
Trace |
msTrace |
static int |
SCAN_MARK |
postSanityPhase, preSanityPhaseCLOSURE, collection, collectionAttempt, COMPLETE, completeClosurePhase, FINALIZABLE, finishPhase, FORWARD, FORWARD_FINALIZABLE, FORWARD_REFS, forwardPhase, INITIATE, initPhase, PHANTOM_REFS, POST_SANITY_PLACEHOLDER, PRE_SANITY_PLACEHOLDER, PREPARE, PREPARE_STACKS, prepareStacks, refTypeClosurePhase, RELEASE, rootClosurePhase, ROOTS, SANITY_BUILD_TABLE, SANITY_CHECK_TABLE, SANITY_COPY_ROOTS, SANITY_PREPARE, SANITY_RELEASE, SANITY_ROOTS, SANITY_SET_POSTGC, SANITY_SET_PREGC, sanityBuildPhase, sanityCheckPhase, SET_COLLECTION_KIND, SOFT_REFS, STACK_ROOTS, WEAK_REFS, WEAK_TRACK_REFSALLOC_CODE, ALLOC_COLD_CODE, ALLOC_DEFAULT, ALLOC_GCSPY, ALLOC_HOT_CODE, ALLOC_IMMORTAL, ALLOC_LARGE_CODE, ALLOC_LOS, ALLOC_NON_MOVING, ALLOC_NON_REFERENCE, ALLOC_PRIMITIVE_LOS, ALLOC_STACK, allocationSiteCount, ALLOCATORS, concurrentWorkers, controlCollectorContext, DEFAULT_MAX_NURSERY, DEFAULT_MIN_NURSERY, DEFAULT_SITE, defaultCollectorContext, emergencyCollection, GATHER_WRITE_BARRIER_STATS, GC_PREPARE, GC_PROPER, IMMORTAL, immortalSpace, insideHarness, internalTriggeredCollection, LARGE_CODE, largeCodeSpace, lastInternalTriggeredCollection, LOS, loSpace, MAX_NON_LOS_COPY_BYTES, MAX_NON_LOS_DEFAULT_ALLOC_BYTES, MAX_NON_LOS_NONMOVING_ALLOC_BYTES, META, metaDataSpace, NEEDS_LOG_BIT_IN_HEADER, NON_MOVING, NON_PARTICIPANT, nonMovingSpace, NOT_IN_GC, parallelWorkers, pretenureThreshold, SANITY, sanityChecker, sanitySpace, SCAN_BOOT_IMAGE, SMALL_CODE, smallCodeSpace, stacksPrepared, totalTime, USE_CODE_SPACE, userTriggeredCollection, VM_SPACE, vmSpace| Constructor and Description |
|---|
MS() |
| Modifier and Type | Method and Description |
|---|---|
void |
collectionPhase(short phaseId)
Perform a (global) collection phase.
|
int |
getPagesUsed()
Return the number of pages reserved for use given the pending
allocation.
|
protected void |
registerSpecializedMethods()
Registers specialized methods.
|
boolean |
willNeverMove(ObjectReference object)
Can this object ever move.
|
processOptionsreplacePhase, replacePlaceholderPhase, switchNurseryZeroingApproachavailableMemory, bootTimeWriteBarrier, collectionRequired, concurrentCollectionRequired, determineThreadCount, enableAllocation, enableCollection, forceFullHeapCollection, freeMemory, fullyBooted, gcInProgress, gcInProgressProper, getAllocationSite, getCollectionReserve, getPagesAvail, getPagesReserved, getSpecializedScanClass, getTotalPages, handleUserCollectionRequest, harnessBegin, harnessEnd, insertPhaseAfter, isCurrentGCNursery, isEmergencyCollection, isInitialized, isInternalTriggeredCollection, isUserTriggeredCollection, lastCollectionFullHeap, lastCollectionWasExhaustive, loadObjectReference, logPoll, notifyExit, poll, preCollectorSpawn, printDetailedTiming, printPostStats, printPreStats, printUsedPages, reservedMemory, resetCollectionTrigger, sanityExpectedRC, sanityLinearScan, setBuildTimeGCByte, setGCStatus, spawnCollectorThreads, stacksPrepared, startGCspyServer, storeObjectReference, stressTestGCRequired, totalMemory, triggerInternalCollectionRequest, usedMemorypublic static final MarkSweepSpace msSpace
public static final int MARK_SWEEP
public static final int SCAN_MARK
public MS()
public void collectionPhase(short phaseId)
collectionPhase in class SimplephaseId - The unique id of the phase to perform.public int getPagesUsed()
getPagesUsed in class Planpublic boolean willNeverMove(ObjectReference object)
willNeverMove in class Planobject - The object in questiontrue if it is not possible that the object will ever move.protected void registerSpecializedMethods()
PlanregisterSpecializedMethods in class Plan