RFR(S) JDK-8025526: VirtualSpace should support per-instance disabling of large pages

Mikael Gerdin mikael.gerdin at oracle.com
Mon Sep 30 03:49:36 PDT 2013


Erik,

On 09/27/2013 05:10 PM, Erik Helin wrote:
> Hi Mikael,
>
> what do you think about splitting the VirtualSpace::initialize method
> into two methods:
> - VirtualSpace::initialize
> - VirtualSpace::initialize_with_granularity
>
> Then initialize would just call initialize_with_granularity like the
> following:
>
>    bool VirtualSpace::initialize(ReservedSpace rs, size_t committed_size) {
>      size_t granularity = os::page_size_for_regions(rs.size(), rs.size(), 1);
>      return initialize_with_granularity(rs, committed_size, granularity);
>    }
>
>    bool VirtualSpace::initialize_with_granularity(ReservedSpace rs,
>      size_t committed_size, size_t granularity) {
>      assert(granularity > 0, "Can't have 0 as granularity");
>      // old initialize code
>      _middle_alignment = granularity;
>      // rest of old initialized code
>    }
>
> This way, we get rid of the default argument and don't have to check if
> max_commit_granularity == 0.

I like your suggestion.
I've uploaded a second webrev which implements your suggestion.
I had to update the test code so I re-ran the tests on all platforms.

New webrev: http://cr.openjdk.java.net/~mgerdin/8025526/webrev.1/

/Mikael

>
> Thanks,
> Erik
>
> On 2013-09-27, Mikael Gerdin wrote:
>> Hi,
>>
>> As part of ongoing work in getting Metaspace to properly enforce the
>> MaxMetaspaceSize limit [JDK-8024547] we need to extend the
>> VirtualSpace class to allow us to set the granularity at which
>> VirtualSpace commits pages from the OS.
>>
>> Summary of changes:
>> Extend VirtualSpace::initialize to take a parameter for setting the
>> maximum commit granularity. The default value 0 keeps the previous
>> behavior of using os::page_size_for_region to determine the
>> granularity.
>> Add unit tests for disabling and enabling large pages both at the
>> ReservedSpace and the VirtualSpace level.
>>
>> Testing:
>> JPRT run (includes running the new tests)
>>
>> Webrev: http://cr.openjdk.java.net/~mgerdin/8025526/webrev.0
>> Bug link: https://bugs.openjdk.java.net/browse/JDK-8025526
>>
>> /Mikael



More information about the hotspot-runtime-dev mailing list