diff src/share/vm/runtime/virtualspace.cpp @ 22978:30e04eba9e29 hs25.60-b13

8077255: TracePageSizes output reports wrong page size on Windows with G1 Summary: Print selected page size, not alignment size chosen by ReservedSpace (which is the vm_allocation_granularity that is different to page size on Windows) in the message presented by TracePageSizes. Reviewed-by: drwhite, jmasa
author tschatzl
date Thu, 09 Apr 2015 15:41:47 +0200
parents 33e421924c67
children dd9cc155639c
line wrap: on
line diff
--- a/src/share/vm/runtime/virtualspace.cpp	Tue Apr 07 10:53:51 2015 +0200
+++ b/src/share/vm/runtime/virtualspace.cpp	Thu Apr 09 15:41:47 2015 +0200
@@ -52,12 +52,13 @@
     _alignment(0), _special(false), _executable(false) {
 }
 
-ReservedSpace::ReservedSpace(size_t size, bool prefer_large_pages) {
+ReservedSpace::ReservedSpace(size_t size, size_t preferred_page_size) {
+  bool has_preferred_page_size = preferred_page_size != 0;
   // Want to use large pages where possible and pad with small pages.
-  size_t page_size = os::page_size_for_region_unaligned(size, 1);
+  size_t page_size = has_preferred_page_size ? preferred_page_size : os::page_size_for_region_unaligned(size, 1);
   bool large_pages = page_size != (size_t)os::vm_page_size();
   size_t alignment;
-  if (large_pages && prefer_large_pages) {
+  if (large_pages && has_preferred_page_size) {
     alignment = MAX2(page_size, (size_t)os::vm_allocation_granularity());
     // ReservedSpace initialization requires size to be aligned to the given
     // alignment. Align the size up.