Mercurial > hg > truffle
comparison src/share/vm/memory/heap.cpp @ 79:82db0859acbe
6642862: Code cache allocation fails with large pages after 6588638
Reviewed-by: apetrusenko
author | jcoomes |
---|---|
date | Fri, 28 Mar 2008 23:35:42 -0700 |
parents | a61af66fc99e |
children | d1605aabd0a1 |
comparison
equal
deleted
inserted
replaced
78:e1e86702e43e | 79:82db0859acbe |
---|---|
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 } |