org.mmtk.policy
Class RawPageSpace
java.lang.Object
org.mmtk.policy.Space
org.mmtk.policy.RawPageSpace
- All Implemented Interfaces:
- Constants
public final class RawPageSpace
- extends Space
- implements Constants
Each instance of this class corresponds to one raw page space.
This class provides access to raw memory for managing internal meta
data.
| Fields inherited from class org.mmtk.policy.Space |
AVAILABLE_BYTES, AVAILABLE_END, AVAILABLE_PAGES, AVAILABLE_START, BYTES_IN_CHUNK, contiguous, descriptor, extent, headDiscontiguousRegion, HEAP_END, HEAP_START, immortal, LOG_ADDRESS_SPACE, LOG_BYTES_IN_CHUNK, MAX_CHUNKS, MAX_SPACES, movable, PAGES_IN_CHUNK, pr, start |
| 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 |
RawPageSpace(String name,
int pageBudget,
VMRequest vmRequest)
The caller specifies the region of virtual memory to be used for
this space. |
| Methods inherited from class org.mmtk.policy.Space |
acquire, allocationFailed, availablePhysicalPages, chunkAlign, chunkAlign, clearAllAllocationFailed, clearAllocationFailed, committedPages, cumulativeCommittedPages, eagerlyMmapMMTkContiguousSpaces, eagerlyMmapMMTkDiscontiguousSpaces, eagerlyMmapMMTkSpaces, getDescriptor, getDiscontigEnd, getDiscontigStart, getExtent, getFracAvailable, getIndex, getName, getSpaceForAddress, getSpaceForObject, getStart, growDiscontiguousSpace, growSpace, isImmortal, isImmortal, isInSpace, isInSpace, isMappedAddress, isMappedObject, isMovable, isMovable, isReachable, printUsageMB, printUsagePages, printVMMap, releaseDiscontiguousChunks, requiredChunks, requiredPages, reservedPages, visitSpaces |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RawPageSpace
public RawPageSpace(String name,
int pageBudget,
VMRequest vmRequest)
- The caller specifies the region of virtual memory to be used for
this space. If this region conflicts with an existing space,
then the constructor will fail.
- Parameters:
name - The name of this space (used when printing error messages etc)pageBudget - The number of pages this space may consume
before consulting the planvmRequest - An object describing the virtual memory requested.
prepare
public void prepare()
release
public void release()
release
public void release(Address first)
- Release a group of pages that were allocated together.
- Specified by:
release in class Space
- Parameters:
first - The first page in the group of pages that were
allocated together.
traceObject
public ObjectReference traceObject(TransitiveClosure trace,
ObjectReference object)
- Trace an object.
This makes no sense for a raw page space and should never be
called.
- Specified by:
traceObject in class Space
- Parameters:
object - The object to be traced.trace - The trace being conducted.
- Returns:
zero: calling this is an error.
isLive
public boolean isLive(ObjectReference object)
- Description copied from class:
Space
- Is the object in this space alive?
- Specified by:
isLive in class Space
- Parameters:
object - The object reference.
- Returns:
- True if the object is live.