public abstract class BaseLargeObjectSpace extends Space
Each of the instance methods of this class may be called by any thread (i.e. synchronization must be explicit in any instance or class method).
This stands in contrast to TreadmillLocal, which is instantiated and called on a per-thread basis, where each instance of TreadmillLocal corresponds to one thread operating over one space.
Space.SpaceVisitor
Modifier and Type | Field and Description |
---|---|
protected static Word |
PAGE_MASK |
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, zeroed
Constructor and Description |
---|
BaseLargeObjectSpace(String name,
boolean zeroed,
VMRequest vmRequest)
The caller specifies the region of virtual memory to be used for
this space.
|
Modifier and Type | Method and Description |
---|---|
protected abstract int |
cellHeaderSize()
Return the size of the per-cell header for cells of a given class
size.
|
void |
free(Address cell)
Free a cell.
|
int |
getHeaderSize()
Calculates the header size required for the large object.
|
Extent |
getSize(Address first)
Return the size of the super page
|
static Address |
getSuperPage(Address cell)
Return the superpage for a given cell.
|
protected abstract int |
superPageHeaderSize()
Return the size of the per-superpage header required by this
system.
|
acquire, availablePhysicalPages, chunkAlign, chunkAlign, committedPages, cumulativeCommittedPages, eagerlyMmapMMTkContiguousSpaces, eagerlyMmapMMTkDiscontiguousSpaces, eagerlyMmapMMTkSpaces, getDescriptor, getDiscontigEnd, getDiscontigStart, getExtent, getFracAvailable, getHeadDiscontiguousRegion, getIndex, getName, getSpaceCount, getSpaceForAddress, getSpaceForObject, getSpaces, getStart, growDiscontiguousSpace, growSpace, isImmortal, isImmortal, isInSpace, isInSpace, isLive, isMappedAddress, isMappedObject, isMovable, isMovable, isReachable, printUsageMB, printUsagePages, printVMMap, release, releaseAllChunks, releaseDiscontiguousChunks, requiredChunks, reservedPages, setZeroingApproach, skipConcurrentZeroing, traceObject, triggerConcurrentZeroing, visitSpaces
public BaseLargeObjectSpace(String name, boolean zeroed, VMRequest vmRequest)
name
- The name of this space (used when printing error messages etc)zeroed
- if true, allocations return zeroed memory.vmRequest
- An object describing the virtual memory requested.public final int getHeaderSize()
public final void free(Address cell)
cell
- The address of the first byte of the cell to be freedprotected abstract int superPageHeaderSize()
protected abstract int cellHeaderSize()
public static Address getSuperPage(Address cell)
cell
- The address of the first word of the cell (exclusive
of any sub-class specific metadata).cell
.