< prev index next >
src/share/vm/runtime/os.cpp
Print this page
rev 7656 : 8066875: VirtualSpace does not use large pages (02)
@@ -1405,14 +1405,11 @@
const size_t max_page_size = region_size / min_pages;
for (size_t i = 0; _page_sizes[i] != 0; ++i) {
const size_t page_size = _page_sizes[i];
if (page_size <= max_page_size) {
- if (!must_be_aligned) {
- return page_size;
- }
- if (is_size_aligned(region_size, page_size)) {
+ if (!must_be_aligned || is_size_aligned(region_size, page_size)) {
return page_size;
}
}
}
}
@@ -1710,33 +1707,33 @@
}
}
static void test_page_size_for_region_unaligned() {
if (UseLargePages) {
- // Given exact page size, should return that page size
+ // Given exact page size, should return that page size.
for (size_t i = 0; os::_page_sizes[i] != 0; i++) {
size_t expected = os::_page_sizes[i];
size_t actual = os::page_size_for_region_unaligned(expected, 1);
assert_eq(expected, actual);
}
- // Given slightly larger size than a page size, return the page size
+ // Given slightly larger size than a page size, return the page size.
for (size_t i = 0; os::_page_sizes[i] != 0; i++) {
size_t expected = os::_page_sizes[i];
size_t actual = os::page_size_for_region_unaligned(expected + 17, 1);
assert_eq(expected, actual);
}
// Given a slightly smaller size than a page size,
- // return the next smaller page size
+ // return the next smaller page size.
if (os::_page_sizes[1] > os::_page_sizes[0]) {
size_t expected = os::_page_sizes[0];
size_t actual = os::page_size_for_region_unaligned(os::_page_sizes[1] - 17, 1);
assert_eq(actual, expected);
}
- // Return small page size for values less than a small page
+ // Return small page size for values less than a small page.
size_t small_page = small_page_size();
size_t actual = os::page_size_for_region_unaligned(small_page - 17, 1);
assert_eq(small_page, actual);
}
}
< prev index next >