100 |
100 |
101 _segment_size = segment_size; |
101 _segment_size = segment_size; |
102 _log2_segment_size = exact_log2(segment_size); |
102 _log2_segment_size = exact_log2(segment_size); |
103 |
103 |
104 // Reserve and initialize space for _memory. |
104 // Reserve and initialize space for _memory. |
105 const size_t page_size = os::page_size_for_region(committed_size, |
105 const size_t page_size = os::can_execute_large_page_memory() ? |
106 reserved_size, 8); |
106 os::page_size_for_region(committed_size, reserved_size, 8) : |
|
107 os::vm_page_size(); |
107 const size_t granularity = os::vm_allocation_granularity(); |
108 const size_t granularity = os::vm_allocation_granularity(); |
108 const size_t r_align = MAX2(page_size, granularity); |
109 const size_t r_align = MAX2(page_size, granularity); |
109 const size_t r_size = align_size_up(reserved_size, r_align); |
110 const size_t r_size = align_size_up(reserved_size, r_align); |
110 const size_t c_size = align_size_up(committed_size, page_size); |
111 const size_t c_size = align_size_up(committed_size, page_size); |
111 |
112 |
112 const size_t rs_align = page_size == (size_t) os::vm_page_size() ? 0 : |
113 const size_t rs_align = page_size == (size_t) os::vm_page_size() ? 0 : |
113 MAX2(page_size, granularity); |
114 MAX2(page_size, granularity); |
114 ReservedSpace rs(r_size, rs_align, false); |
115 ReservedSpace rs(r_size, rs_align, rs_align > 0); |
115 os::trace_page_sizes("code heap", committed_size, reserved_size, page_size, |
116 os::trace_page_sizes("code heap", committed_size, reserved_size, page_size, |
116 rs.base(), rs.size()); |
117 rs.base(), rs.size()); |
117 if (!_memory.initialize(rs, c_size)) { |
118 if (!_memory.initialize(rs, c_size)) { |
118 return false; |
119 return false; |
119 } |
120 } |