RFR: 8224820: ZGC: Support discontiguous heap reservations
per.liden at oracle.com
Tue Sep 17 10:05:23 UTC 2019
Discussed with Erik off-line. In light of things like future Windows
support, we probably don't want to make the reservation code shared,
instead just move it to os/posix.
Here's a proposed webrev for doing just that:
On 9/5/19 3:51 PM, Per Liden wrote:
> On 8/9/19 11:59 AM, Erik Österlund wrote:
>> Today ZGC reserves a huge chunk of virtual address space when the JVM
>> starts. This typically succeeds because we grab the VA before anyone
>> else has time to do so. But if some ASLR library or something was to
>> grab a tiny part of the desired VA, ZGC can't start. We should support
>> discontiguous heap reservations to support this.
>> On linux, by default, this does not happen. But on OS X, it does
>> happen relatively frequently. So we need to fix this to allow a mac port.
>> This patch implements a recursive algorithm for finding holes at 2MB
>> granularities in the normally contiguous reservation when initializing
>> the heap, removing them from our VA.
>> This patch depends on 8224815, which depends on 8229189 and 8229278.
>> They are all out for review.
> Looks good. However, please pass down max_capacity from ZPageAllocator
> to ZVirtualMemory's constructor, instead of reading MaxHeapSize.
More information about the hotspot-gc-dev