org.mmtk.policy.immix
Class Defrag

java.lang.Object
  extended by org.mmtk.policy.immix.Defrag
All Implemented Interfaces:
Constants

public class Defrag
extends Object
implements Constants


Field Summary
private  int availableCleanPagesForDefrag
           
private  int debugBytesDefraged
           
private  boolean debugCollectionTypeDetermined
           
static SizeCounter defragBytesFreed
           
static SizeCounter defragBytesNotFreed
           
static SizeCounter defragCleanBytesAvailable
           
static SizeCounter defragCleanBytesUsed
           
(package private) static short defragReusableMarkStateThreshold
           
static EventCounter defrags
           
private  boolean defragSpaceExhausted
           
(package private) static short defragSpillThreshold
           
private  boolean inDefragCollection
           
private  FreeListPageResource pr
           
private  int[] spillAvailHistogram
           
private  int[][] spillMarkHistograms
           
 
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
Defrag(FreeListPageResource pr)
           
 
Method Summary
(package private)  void decideWhetherToDefrag(boolean emergencyCollection, boolean collectWholeHeap, int collectionAttempt, boolean userTriggered, boolean exhaustedReusableSpace)
           
(package private)  boolean determined(boolean inDefrag)
           
private  void establishDefragSpillThreshold(ChunkList chunkMap, ImmixSpace space)
           
(package private)  int[] getAndZeroSpillMarkHistogram(int ordinal)
           
(package private)  void getBlock()
           
(package private)  int getDefragHeadroomPages()
           
(package private)  void globalRelease()
           
(package private)  boolean inDefrag()
           
(package private)  void prepare(ChunkList chunkMap, ImmixSpace space)
           
(package private)  boolean spaceExhausted()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inDefragCollection

private boolean inDefragCollection

debugBytesDefraged

private int debugBytesDefraged

availableCleanPagesForDefrag

private int availableCleanPagesForDefrag

defragSpaceExhausted

private boolean defragSpaceExhausted

spillMarkHistograms

private int[][] spillMarkHistograms

spillAvailHistogram

private int[] spillAvailHistogram

defragCleanBytesUsed

public static SizeCounter defragCleanBytesUsed

defragBytesNotFreed

public static SizeCounter defragBytesNotFreed

defragBytesFreed

public static SizeCounter defragBytesFreed

defragCleanBytesAvailable

public static SizeCounter defragCleanBytesAvailable

pr

private final FreeListPageResource pr

debugCollectionTypeDetermined

private boolean debugCollectionTypeDetermined

defragSpillThreshold

static short defragSpillThreshold

defragReusableMarkStateThreshold

static short defragReusableMarkStateThreshold

defrags

public static EventCounter defrags
Constructor Detail

Defrag

Defrag(FreeListPageResource pr)
Method Detail

inDefrag

boolean inDefrag()

prepare

void prepare(ChunkList chunkMap,
             ImmixSpace space)

globalRelease

void globalRelease()

getDefragHeadroomPages

int getDefragHeadroomPages()

decideWhetherToDefrag

void decideWhetherToDefrag(boolean emergencyCollection,
                           boolean collectWholeHeap,
                           int collectionAttempt,
                           boolean userTriggered,
                           boolean exhaustedReusableSpace)

determined

boolean determined(boolean inDefrag)

getBlock

void getBlock()

establishDefragSpillThreshold

private void establishDefragSpillThreshold(ChunkList chunkMap,
                                           ImmixSpace space)

spaceExhausted

boolean spaceExhausted()

getAndZeroSpillMarkHistogram

int[] getAndZeroSpillMarkHistogram(int ordinal)