mirror of
https://github.com/openjdk/jdk.git
synced 2026-07-28 20:03:39 +00:00
8345661: Simplify page size alignment in code heap reservation
Reviewed-by: dholmes, thartmann
This commit is contained in:
parent
076bfa688c
commit
2382a2de96
@ -433,7 +433,7 @@ void CodeCache::add_heap(ReservedSpace rs, const char* name, CodeBlobType code_b
|
||||
|
||||
// Reserve Space
|
||||
size_t size_initial = MIN2((size_t)InitialCodeCacheSize, rs.size());
|
||||
size_initial = align_up(size_initial, os::vm_page_size());
|
||||
size_initial = align_up(size_initial, rs.page_size());
|
||||
if (!heap->reserve(rs, size_initial, CodeCacheSegmentSize)) {
|
||||
vm_exit_during_initialization(err_msg("Could not reserve enough space in %s (" SIZE_FORMAT "K)",
|
||||
heap->name(), size_initial/K));
|
||||
|
||||
@ -200,6 +200,7 @@ void CodeHeap::on_code_mapping(char* base, size_t size) {
|
||||
|
||||
bool CodeHeap::reserve(ReservedSpace rs, size_t committed_size, size_t segment_size) {
|
||||
assert(rs.size() >= committed_size, "reserved < committed");
|
||||
assert(is_aligned(committed_size, rs.page_size()), "must be page aligned");
|
||||
assert(segment_size >= sizeof(FreeBlock), "segment size is too small");
|
||||
assert(is_power_of_2(segment_size), "segment_size must be a power of 2");
|
||||
assert_locked_or_safepoint(CodeCache_lock);
|
||||
@ -208,13 +209,8 @@ bool CodeHeap::reserve(ReservedSpace rs, size_t committed_size, size_t segment_s
|
||||
_log2_segment_size = exact_log2(segment_size);
|
||||
|
||||
// Reserve and initialize space for _memory.
|
||||
const size_t page_size = rs.page_size();
|
||||
const size_t granularity = os::vm_allocation_granularity();
|
||||
const size_t c_size = align_up(committed_size, page_size);
|
||||
assert(c_size <= rs.size(), "alignment made committed size to large");
|
||||
|
||||
os::trace_page_sizes(_name, c_size, rs.size(), rs.base(), rs.size(), page_size);
|
||||
if (!_memory.initialize(rs, c_size)) {
|
||||
os::trace_page_sizes(_name, committed_size, rs.size(), rs.base(), rs.size(), rs.page_size());
|
||||
if (!_memory.initialize(rs, committed_size)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -222,7 +218,7 @@ bool CodeHeap::reserve(ReservedSpace rs, size_t committed_size, size_t segment_s
|
||||
_number_of_committed_segments = size_to_segments(_memory.committed_size());
|
||||
_number_of_reserved_segments = size_to_segments(_memory.reserved_size());
|
||||
assert(_number_of_reserved_segments >= _number_of_committed_segments, "just checking");
|
||||
const size_t reserved_segments_alignment = MAX2(os::vm_page_size(), granularity);
|
||||
const size_t reserved_segments_alignment = MAX2(os::vm_page_size(), os::vm_allocation_granularity());
|
||||
const size_t reserved_segments_size = align_up(_number_of_reserved_segments, reserved_segments_alignment);
|
||||
const size_t committed_segments_size = align_to_page_size(_number_of_committed_segments);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user