org.mmtk.plan.semispace.gctrace
Class GCTraceCollector

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.semispace.SSCollector
                      extended by org.mmtk.plan.semispace.gctrace.GCTraceCollector
All Implemented Interfaces:
Constants

public class GCTraceCollector
extends SSCollector

This class implements per-collector thread behavior and state for the GCTrace plan, which implements a GC tracing algorithm.

Specifically, this class defines SS collection behavior (through inducedTrace and the collectionPhase method), and collection-time allocation (copying of objects).

See GCTrace for an overview of the GC trace algorithm.

See Also:
SSCollector, GCTrace, GCTraceMutator, StopTheWorldCollector, CollectorContext

Field Summary
protected  GCTraceTraceLocal inducedTrace
          Instance fields
 
Fields inherited from class org.mmtk.plan.semispace.SSCollector
los, ss, trace
 
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
GCTraceCollector()
          Constructor
 
Method Summary
 void collectionPhase(short phaseId, boolean primary)
          Perform a (local, i.e.per-collector) collection phase.
 TraceLocal getCurrentTrace()
           
private static GCTrace global()
           
 
Methods inherited from class org.mmtk.plan.semispace.SSCollector
allocCopy, isSemiSpaceObject, postCopy
 
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
copyCheckAllocator, getId, getLog, initCollector
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inducedTrace

protected final GCTraceTraceLocal inducedTrace
Instance fields

Constructor Detail

GCTraceCollector

public GCTraceCollector()
Constructor

Method Detail

collectionPhase

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

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

global

private static GCTrace global()
Returns:
The active global plan as a GCTrace instance.

getCurrentTrace

public TraceLocal getCurrentTrace()
Overrides:
getCurrentTrace in class SSCollector
Returns:
The current trace instance.