Issue Details (XML | Word | Printable)

Key: RVM-227
Type: Sub-task Sub-task
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Steve Blackburn
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
RVM
RVM-222

Need more scalable global page free list

Created: 17/Sep/07 09:18 PM   Updated: 21/May/08 02:13 PM
Component/s: MMTk
Affects Version/s: None
Fix Version/s: 1000

Time Tracking:
Not Specified


 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Steve Blackburn added a comment - 17/Sep/07 09:24 PM
There is a single global free page list used by all discontiguous spaces. This free list is created in the boot image and spans the entire available space (2 words per page of available address space).

This has two obvious levels of redundancy:

1. The boot image always pays for the worst case scenario (all of virtual memory is consumed by the user), which almost never occurs. Pay-as-you-go would be far more appropriate.

2. The data structure includes space for the entire usable address space, some/much of which is tied down by monotone spaces which don't need this.

Presumably the best approach is to add a level of indirection. For example, dynamically allocate the free list meta-data as each chunk (4MB) is assigned. When searching the free list, indirect at 4MB granularity. It may take a bit of work to construct a free list like this which will coherently span 4MB chunks.