Make the MMTk Mmapper 64-bit friendly

Description

Currently, when virtual memory is requested from the OS, this is done via MMTk's Mmapper class. This allocates memory in 1MB chunks, which are tracked in a byte array, which occupies 8K in the 32-bit memory model, but clearly doesn't scale to 64-bit.

Options are:

  • (Triage only) keep the existing model, and only grow memory modestly for 64-bit.

  • (Triage only) keep the existing model, grow memory less modestly, while increasing the Mmap granularity. This could have a negative impact on performance.

  • Use a multi-level table, perhaps a tree or a top-level hash to lower level byte maps.

  • Get rid of the mmap table altogether and call out to the Linux kernel for page information, e.g. via /proc/self/pagemap

Environment

None

Status

Assignee

Robin Garner

Reporter

Robin Garner

Labels

None

Fix versions

Priority

High
Configure