org.mmtk.utility.gcspy.drivers
Class GenImmortalSpaceDriver

java.lang.Object
  extended by org.mmtk.utility.gcspy.drivers.AbstractDriver
      extended by org.mmtk.utility.gcspy.drivers.LinearSpaceDriver
          extended by org.mmtk.utility.gcspy.drivers.ImmortalSpaceDriver
              extended by org.mmtk.utility.gcspy.drivers.GenImmortalSpaceDriver

public class GenImmortalSpaceDriver
extends ImmortalSpaceDriver

GCspy driver for the MMTk generational immortal space. Additional Stream for remset references. This class extends ImmortalSpaceDriver, a simple driver for the contiguous MMTk ImmortalSpace.


Field Summary
private static boolean DEBUG
           
protected  ShortStream remsetStream
          The Stream for newly promoted objects
protected  int totalRemset
          Statistics for remset references
 
Fields inherited from class org.mmtk.utility.gcspy.drivers.LinearSpaceDriver
allTileNum, arrayObjectsStream, arrayPrimitiveStream, arrayUsedSpaceStream, lastAddress, lastSize, refFromImmortalStream, rootsStream, scalarObjectsStream, scalarUsedSpaceStream, subspace, totalArrayObjects, totalArrayUsedSpace, totalPrimitives, totalRefFromImmortal, totalRoots, totalScalarObjects, totalScalarUsedSpace
 
Fields inherited from class org.mmtk.utility.gcspy.drivers.AbstractDriver
blockSize, changed, control, CONTROL_BACKGROUND, CONTROL_LINK, CONTROL_SEPARATOR, CONTROL_UNUSED, CONTROL_USED, maxTileNum, mmtkSpace, myClass, name, server, serverSpace, streams
 
Constructor Summary
GenImmortalSpaceDriver(ServerInterpreter server, String spaceName, Space mmtkSpace, int blockSize, boolean mainSpace)
          Create a new driver for a generational immortal space.
 
Method Summary
private  ShortStream createRemsetStream()
          Helper methods to create the additional streams
protected  String getDriverName()
          Get the name of this driver type.
 boolean handleRemsetAddress(Address addr)
          Handle a remset address
 void resetRemsetStream()
          Reset the remset Stream The remset Stream has to be reset seperately because we do not gather data in the usual way using scan().
protected  void setupSummaries()
          Setup summaries part of the transmit method.
 
Methods inherited from class org.mmtk.utility.gcspy.drivers.ImmortalSpaceDriver
registerDriversForReferenceNotification, scan
 
Methods inherited from class org.mmtk.utility.gcspy.drivers.LinearSpaceDriver
getScanner, handleReferenceFromImmortalSpace, handleRoot, resetData, resetRootsStream, scan, scanCheckPrimitiveArray, setRange, setupControlInfo, transmit
 
Methods inherited from class org.mmtk.utility.gcspy.drivers.AbstractDriver
addControl, addStream, controlIsBackground, controlIsSeparator, controlIsUnused, controlIsUsed, controlValues, countTileNum, countTileNum, createServerSpace, createSubspace, getControl, getMaxTileNum, getServerSpace, initControl, initControls, isConnected, maxObjectsPerBlock, scan, scan, send, setControl, setRange, setSpaceInfo, setTilenames
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

private static final boolean DEBUG
See Also:
Constant Field Values

remsetStream

protected ShortStream remsetStream
The Stream for newly promoted objects


totalRemset

protected int totalRemset
Statistics for remset references

Constructor Detail

GenImmortalSpaceDriver

public GenImmortalSpaceDriver(ServerInterpreter server,
                              String spaceName,
                              Space mmtkSpace,
                              int blockSize,
                              boolean mainSpace)
Create a new driver for a generational immortal space.

Parameters:
server - The GCspy ServerInterpreter
spaceName - The name of this GCspy space
mmtkSpace - The MMTk space
blockSize - The tile size
mainSpace - Is this the main space?
Method Detail

getDriverName

protected String getDriverName()
Get the name of this driver type.

Overrides:
getDriverName in class ImmortalSpaceDriver
Returns:
The name, "MMTk GenImmortalSpaceDriver" for this driver.

createRemsetStream

private ShortStream createRemsetStream()
Helper methods to create the additional streams


setupSummaries

protected void setupSummaries()
Setup summaries part of the transmit method.

Overrides method in superclass to handle additional Stream.

Overrides:
setupSummaries in class LinearSpaceDriver

handleRemsetAddress

public boolean handleRemsetAddress(Address addr)
Handle a remset address

Parameters:
addr - Remset Address
Returns:
true if the given Address is in this subspace.

resetRemsetStream

public void resetRemsetStream()
Reset the remset Stream The remset Stream has to be reset seperately because we do not gather data in the usual way using scan().