RFR: 8066875: VirtualSpace does not use large pages
Tobias Hartmann
tobias.hartmann at oracle.com
Wed Dec 10 09:39:13 UTC 2014
Hi Erik,
looks good (not a reviewer).
Thanks,
Tobias
On 09.12.2014 20:35, Erik Helin wrote:
> Hi all,
>
> the fix for JDK-8049864 [0] made os::page_size_for_region slightly more strict
> since the function now demands that the given region_size is size aligned with
> respect to the chosen page_size. The reason for doing this was that
> os::page_size_for_region was used in two ways:
> 1. Give me a suitable page size for this amount of memory
> 2. Give me the largest page size for this amount of memory
> The fix for JDK-8049864 fixed os::page_size_for_region for the "suitable page
> size" scenario, but is too strict for the "largest page size" scenario. This
> caused a regression in VirtualSpace::initialize, which only needs the largest
> possible page size, since VirtualSpace::initialize_with_granularity takes care
> of any alignment issues.
>
> This patch adds the function os::largest_page_size_less_than and updates
> VirtualSpace::initialize to use this new function instead of
> os::page_size_for_region.
>
> Webrev:
> http://cr.openjdk.java.net/~ehelin/8066875/webrev.00/
>
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8066875
>
> Testing:
> - JPRT
> - Verified that the code cache now uses large pages even if
> ReservedCodeCacheSize is 241 MB (see bug for more details).
> - Added new internal vm tests (also run on SPARC machine with large
> pages)
>
> Thanks,
> Erik
>
> [0]: http://hg.openjdk.java.net/jdk9/hs-gc/hotspot/rev/b326a3e8dcab
More information about the hotspot-dev
mailing list