org.mmtk.utility.gcspy.drivers
Class GenLOSDriver

java.lang.Object
  extended by org.mmtk.utility.gcspy.drivers.AbstractDriver
      extended by org.mmtk.utility.gcspy.drivers.TreadmillDriver
          extended by org.mmtk.utility.gcspy.drivers.GenLOSDriver

public class GenLOSDriver
extends TreadmillDriver

This class extends a simple driver for the MMTk LargeObjectSpace for Generational Collectors.


Field Summary
private static boolean DEBUG
           
protected  ShortStream remsetStream
          The additional remset stream
protected  int totalRemset
          total of remset Addresses
 
Fields inherited from class org.mmtk.utility.gcspy.drivers.TreadmillDriver
allTileNum, maxAddr, objectsStream, refFromImmortalStream, rootsStream, subspace, threshold, totalObjects, totalRefFromImmortal, totalRoots, totalUsedSpace, usedSpaceStream
 
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
GenLOSDriver(ServerInterpreter server, String spaceName, LargeObjectSpace lospace, int blockSize, int threshold, boolean mainSpace)
          Create a new driver for this collector
 
Method Summary
private  ShortStream createRemsetStream()
           
protected  String getDriverName()
          Get the name of this driver type.
 boolean handleRemsetAddress(Address addr)
          Handle a remset address.
 void resetRemsetStream()
          Reset the remset Stream.
protected  void setupSummaries()
          Setup summaries part of the transmit method.
 
Methods inherited from class org.mmtk.utility.gcspy.drivers.TreadmillDriver
handleReferenceFromImmortalSpace, handleRoot, resetData, resetRootsStream, scan, 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, scan, send, setControl, setRange, 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 additional remset stream


totalRemset

protected int totalRemset
total of remset Addresses

Constructor Detail

GenLOSDriver

public GenLOSDriver(ServerInterpreter server,
                    String spaceName,
                    LargeObjectSpace lospace,
                    int blockSize,
                    int threshold,
                    boolean mainSpace)
Create a new driver for this collector

Parameters:
server - The name of the GCspy server that owns this space
spaceName - The name of this driver
lospace - the large object space for this allocator
blockSize - The tile size
threshold - the size threshold of the LOS
mainSpace - Is this the main space?
Method Detail

getDriverName

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

Overrides:
getDriverName in class TreadmillDriver
Returns:
The name, "MMTk GenLOSDriver" for this driver.

createRemsetStream

private ShortStream createRemsetStream()

setupSummaries

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

Overrides transmitSetupSummaries of superclass to handle additional streams.

Overrides:
setupSummaries in class TreadmillDriver

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().