64-bit version of the Chunk Map (Map.java)

Description

The chunk map org.mmtk.utility.heap.Map is a fixed size array with a 4-byte entry per 4MB "chunk".

Purpose

  1. Implement discontiguous spaces

  2. Provide a rapid lookup of address to space, used on the GC fast path.

In a 64-bit address space, discontiguous spaces are not really required: statically partitioning (a large subset of) the address space into 32 or so contiguous ranges would be sufficient. Under this plan, discontiguous spaces would be a 32-bit concept only, and the factory methods of VMRequest could select the correct space type based on word size.

Alternatively, and lower impact, the size of a chunk could simply be increased on a 64-bit platform. Chunks are also used in the Immix collectors, so we would need to decouple these two concepts, eg into an ImmixChunk and a HeapChunk.

Environment

None

Status

Assignee

Robin Garner

Reporter

Robin Garner

Labels

None

Fix versions

Priority

High
Configure