org.mmtk.policy
Class MarkCompactLocal

java.lang.Object
  extended by org.mmtk.utility.alloc.Allocator
      extended by org.mmtk.utility.alloc.BumpPointer
          extended by org.mmtk.policy.MarkCompactLocal
All Implemented Interfaces:
Constants

public final class MarkCompactLocal
extends BumpPointer

This class implements unsynchronized (local) elements of a sliding mark-compact collector. Allocation is via the bump pointer (@see BumpPointer).

See Also:
BumpPointer, MarkCompactSpace

Field Summary
 
Fields inherited from class org.mmtk.utility.alloc.BumpPointer
allowScanning, BLOCK_MASK, cursor, DATA_END_OFFSET, DATA_START_OFFSET, initialRegion, LOG_BLOCK_SIZE, MAX_DATA_START_OFFSET, MINIMUM_DATA_SIZE, NEXT_REGION_OFFSET, region, REGION_LIMIT_OFFSET, space
 
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
MarkCompactLocal(MarkCompactSpace space)
          Constructor
 
Method Summary
 void flush()
          Flush this thread-local component in preparation for the mutator thread to die.
protected  Extent maximumRegionSize()
          Maximum size of a single region.
private  MarkCompactSpace mcSpace()
           
 void prepare()
          Prepare for collection: update the metadata for the current region, and flush this bump-pointer's allocations to the global page list.
 
Methods inherited from class org.mmtk.utility.alloc.BumpPointer
alloc, allocSlowOnce, checkRegionMetadata, clearNextRegion, gcspyGatherData, gcspyGatherData, getCursor, getDataEnd, getDataStart, getNextRegion, getRegionLimit, getSpace, isRegionAligned, linearScan, rebind, reset, reusePages, setDataEnd, setNextRegion, setRegionLimit, show, updateLimit
 
Methods inherited from class org.mmtk.utility.alloc.Allocator
alignAllocation, alignAllocation, alignAllocationNoFill, allocSlow, allocSlowInline, determineCollectionAttempts, fillAlignmentGap, getMaximumAlignedSize, getMaximumAlignedSize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MarkCompactLocal

public MarkCompactLocal(MarkCompactSpace space)
Constructor

Parameters:
space - The space to bump point into.
Method Detail

mcSpace

private MarkCompactSpace mcSpace()

prepare

public void prepare()
Prepare for collection: update the metadata for the current region, and flush this bump-pointer's allocations to the global page list.


flush

public void flush()
Flush this thread-local component in preparation for the mutator thread to die.


maximumRegionSize

protected Extent maximumRegionSize()
Description copied from class: BumpPointer
Maximum size of a single region. Important for children that implement load balancing or increments based on region size.

Overrides:
maximumRegionSize in class BumpPointer
Returns:
the maximum region size