org.mmtk.plan.markcompact
Class MCCollector

java.lang.Object
  extended by org.mmtk.plan.CollectorContext
      extended by org.mmtk.plan.ParallelCollector
          extended by org.mmtk.plan.SimpleCollector
              extended by org.mmtk.plan.StopTheWorldCollector
                  extended by org.mmtk.plan.markcompact.MCCollector
All Implemented Interfaces:
Constants

public class MCCollector
extends StopTheWorldCollector

This class implements per-collector thread behavior and state for the MC plan, which implements a full-heap mark-compact collector.

Specifically, this class defines MC collection behavior (through trace and the collectionPhase method), and collection-time allocation.

See Also:
for an overview of the mark-compact algorithm.

, MCMutator, StopTheWorldCollector, CollectorContext


Field Summary
private  boolean currentTrace
           
private  MCForwardTraceLocal forwardTrace
           
private  MCMarkTraceLocal markTrace
           
private  MarkCompactCollector mc
           
private static boolean TRACE_FORWARD
           
private static boolean TRACE_MARK
           
 
Fields inherited from class org.mmtk.plan.SimpleCollector
sanityLocal
 
Fields inherited from class org.mmtk.plan.ParallelCollector
group
 
Fields inherited from class org.mmtk.plan.CollectorContext
log
 
Fields inherited from interface org.mmtk.utility.Constants
ALIGNMENT_VALUE, ARRAY_ELEMENT, BITS_IN_ADDRESS, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_INT, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_INT, BYTES_IN_KBYTE, BYTES_IN_MBYTE, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, CARD_MASK, CARD_META_PAGES_PER_REGION, INSTANCE_FIELD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_INT, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_ADDRESS_SPACE, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_INT, LOG_BYTES_IN_KBYTE, LOG_BYTES_IN_MBYTE, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD, LOG_CARD_BYTES, LOG_CARD_GRAIN, LOG_CARD_META_BYTES, LOG_CARD_META_PAGES, LOG_CARD_META_SIZE, LOG_CARD_UNITS, LOG_MIN_ALIGNMENT, MAX_ALIGNMENT, MAX_BYTES_PADDING, MAX_INT, MIN_ALIGNMENT, MIN_INT, SUPPORT_CARD_SCANNING
 
Constructor Summary
MCCollector()
          Constructor
 
Method Summary
 void collectionPhase(short phaseId, boolean primary)
          Perform a (local, i.e.per-collector) collection phase.
 TraceLocal getCurrentTrace()
          
private static MC global()
           
 
Methods inherited from class org.mmtk.plan.StopTheWorldCollector
collect, concurrentCollect, concurrentCollectionPhase
 
Methods inherited from class org.mmtk.plan.ParallelCollector
parallelWorkerCount, parallelWorkerOrdinal, park, rendezvous, run
 
Methods inherited from class org.mmtk.plan.CollectorContext
allocCopy, copyCheckAllocator, getId, getLog, initCollector, postCopy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TRACE_MARK

private static final boolean TRACE_MARK
See Also:
Constant Field Values

TRACE_FORWARD

private static final boolean TRACE_FORWARD
See Also:
Constant Field Values

markTrace

private final MCMarkTraceLocal markTrace

forwardTrace

private final MCForwardTraceLocal forwardTrace

mc

private final MarkCompactCollector mc

currentTrace

private boolean currentTrace
Constructor Detail

MCCollector

public MCCollector()
Constructor

Method Detail

collectionPhase

public final void collectionPhase(short phaseId,
                                  boolean primary)
Perform a (local, i.e.per-collector) collection phase.

Overrides:
collectionPhase in class SimpleCollector
Parameters:
phaseId - The unique phase identifier
primary - Should this thread be used to execute any single-threaded local operations?

getCurrentTrace

public final TraceLocal getCurrentTrace()

Overrides:
getCurrentTrace in class ParallelCollector
Returns:
The current trace instance.

global

private static MC global()
Returns:
The active global plan as an MC instance.