org.mmtk.plan.marksweep
Class MSCollector

java.lang.Object
  extended by org.mmtk.plan.CollectorContext
      extended by org.mmtk.plan.SimpleCollector
          extended by org.mmtk.plan.StopTheWorldCollector
              extended by org.mmtk.plan.marksweep.MSCollector
All Implemented Interfaces:
Constants
Direct Known Subclasses:
PoisonedCollector, StickyMSCollector

public class MSCollector
extends StopTheWorldCollector

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

Specifically, this class defines MS collection behavior (through trace and the collectionPhase method).

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

FIXME The SegregatedFreeList class (and its decendents such as MarkSweepLocal) does not properly separate mutator and collector behaviors, so the ms field below should really not exist in this class as there is no collection-time allocation in this collector., MS, MSMutator, StopTheWorldCollector, CollectorContext


Field Summary
protected  TraceLocal currentTrace
           
protected  MSTraceLocal fullTrace
          Instance fields
protected  MarkSweepLocal ms
           
 
Fields inherited from class org.mmtk.plan.CollectorContext
id, immortal, resetConcurrentWork, sanityLocal
 
Fields inherited from interface org.mmtk.utility.Constants
AALOAD_READ_BARRIER, AASTORE_WRITE_BARRIER, ALIGNMENT_VALUE, BITS_IN_ADDRESS, BITS_IN_BYTE, BITS_IN_INT, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BYTE, 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, GETFIELD_READ_BARRIER, GETSTATIC_READ_BARRIER, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BYTE, 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_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, PUTFIELD_WRITE_BARRIER, PUTSTATIC_WRITE_BARRIER, SUPPORT_CARD_SCANNING
 
Constructor Summary
MSCollector()
          Constructor
 
Method Summary
 void collectionPhase(short phaseId, boolean primary)
          Perform a per-collector collection phase.
 TraceLocal getCurrentTrace()
           
private static MS global()
           
 
Methods inherited from class org.mmtk.plan.StopTheWorldCollector
collect, concurrentCollect, concurrentCollectionPhase
 
Methods inherited from class org.mmtk.plan.CollectorContext
allocCopy, clearResetConcurrentWork, copyCheckAllocator, getId, postCopy, resetConcurrentWork
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fullTrace

protected MSTraceLocal fullTrace
Instance fields


currentTrace

protected TraceLocal currentTrace

ms

protected MarkSweepLocal ms
Constructor Detail

MSCollector

public MSCollector()
Constructor

Method Detail

collectionPhase

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

Overrides:
collectionPhase in class SimpleCollector
Parameters:
phaseId - The collection phase to perform
primary - Perform any single-threaded activities using this thread.

global

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

getCurrentTrace

public final TraceLocal getCurrentTrace()
Specified by:
getCurrentTrace in class CollectorContext
Returns:
The current trace instance.