Mercurial > hg > graal-jvmci-8
comparison 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 |
comparison
equal
deleted
inserted
replaced
22977:33e421924c67 | 22978:30e04eba9e29 |
---|---|
50 // Dummy constructor | 50 // Dummy constructor |
51 ReservedSpace::ReservedSpace() : _base(NULL), _size(0), _noaccess_prefix(0), | 51 ReservedSpace::ReservedSpace() : _base(NULL), _size(0), _noaccess_prefix(0), |
52 _alignment(0), _special(false), _executable(false) { | 52 _alignment(0), _special(false), _executable(false) { |
53 } | 53 } |
54 | 54 |
55 ReservedSpace::ReservedSpace(size_t size, bool prefer_large_pages) { | 55 ReservedSpace::ReservedSpace(size_t size, size_t preferred_page_size) { |
56 bool has_preferred_page_size = preferred_page_size != 0; | |
56 // Want to use large pages where possible and pad with small pages. | 57 // Want to use large pages where possible and pad with small pages. |
57 size_t page_size = os::page_size_for_region_unaligned(size, 1); | 58 size_t page_size = has_preferred_page_size ? preferred_page_size : os::page_size_for_region_unaligned(size, 1); |
58 bool large_pages = page_size != (size_t)os::vm_page_size(); | 59 bool large_pages = page_size != (size_t)os::vm_page_size(); |
59 size_t alignment; | 60 size_t alignment; |
60 if (large_pages && prefer_large_pages) { | 61 if (large_pages && has_preferred_page_size) { |
61 alignment = MAX2(page_size, (size_t)os::vm_allocation_granularity()); | 62 alignment = MAX2(page_size, (size_t)os::vm_allocation_granularity()); |
62 // ReservedSpace initialization requires size to be aligned to the given | 63 // ReservedSpace initialization requires size to be aligned to the given |
63 // alignment. Align the size up. | 64 // alignment. Align the size up. |
64 size = align_size_up(size, alignment); | 65 size = align_size_up(size, alignment); |
65 } else { | 66 } else { |