src/share/vm/runtime/virtualspace.cpp

changeset 7782
30e04eba9e29
parent 7781
33e421924c67
child 7994
04ff2f6cd0eb
child 9475
61523d110335
equal deleted inserted replaced
7781:33e421924c67 7782: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 {

mercurial