< prev index next >
src/hotspot/share/gc/z/zHeap.cpp
Print this page
*** 43,52 ****
--- 43,53 ----
#include "gc/z/zVirtualMemory.inline.hpp"
#include "gc/z/zWorkers.inline.hpp"
#include "logging/log.hpp"
#include "memory/resourceArea.hpp"
#include "oops/oop.inline.hpp"
+ #include "runtime/arguments.hpp"
#include "runtime/safepoint.hpp"
#include "runtime/thread.hpp"
#include "utilities/align.hpp"
#include "utilities/debug.hpp"
*** 60,70 ****
ZHeap* ZHeap::_heap = NULL;
ZHeap::ZHeap() :
_workers(),
_object_allocator(_workers.nworkers()),
! _page_allocator(heap_min_size(), heap_max_size(), heap_max_reserve_size()),
_page_table(),
_forwarding_table(),
_mark(&_workers, &_page_table),
_reference_processor(&_workers),
_weak_roots_processor(&_workers),
--- 61,71 ----
ZHeap* ZHeap::_heap = NULL;
ZHeap::ZHeap() :
_workers(),
_object_allocator(_workers.nworkers()),
! _page_allocator(heap_min_size(), heap_initial_size(), heap_max_size(), heap_max_reserve_size()),
_page_table(),
_forwarding_table(),
_mark(&_workers, &_page_table),
_reference_processor(&_workers),
_weak_roots_processor(&_workers),
*** 79,90 ****
// Update statistics
ZStatHeap::set_at_initialize(heap_max_size(), heap_max_reserve_size());
}
size_t ZHeap::heap_min_size() const {
! const size_t aligned_min_size = align_up(InitialHeapSize, ZGranuleSize);
! return MIN2(aligned_min_size, heap_max_size());
}
size_t ZHeap::heap_max_size() const {
const size_t aligned_max_size = align_up(MaxHeapSize, ZGranuleSize);
return MIN2(aligned_max_size, ZAddressOffsetMax);
--- 80,96 ----
// Update statistics
ZStatHeap::set_at_initialize(heap_max_size(), heap_max_reserve_size());
}
size_t ZHeap::heap_min_size() const {
! const size_t aligned_min_size = align_up(Arguments::min_heap_size(), ZGranuleSize);
! return MAX2(MIN2(aligned_min_size, heap_max_size()), heap_max_reserve_size());
! }
!
! size_t ZHeap::heap_initial_size() const {
! const size_t aligned_initial_size = align_up(InitialHeapSize, ZGranuleSize);
! return MAX2(MIN2(aligned_initial_size, heap_max_size()), heap_min_size());
}
size_t ZHeap::heap_max_size() const {
const size_t aligned_max_size = align_up(MaxHeapSize, ZGranuleSize);
return MIN2(aligned_max_size, ZAddressOffsetMax);
*** 100,110 ****
bool ZHeap::is_initialized() const {
return _page_allocator.is_initialized() && _mark.is_initialized();
}
size_t ZHeap::min_capacity() const {
! return heap_min_size();
}
size_t ZHeap::max_capacity() const {
return _page_allocator.max_capacity();
}
--- 106,116 ----
bool ZHeap::is_initialized() const {
return _page_allocator.is_initialized() && _mark.is_initialized();
}
size_t ZHeap::min_capacity() const {
! return _page_allocator.min_capacity();
}
size_t ZHeap::max_capacity() const {
return _page_allocator.max_capacity();
}
*** 248,257 ****
--- 254,267 ----
// Free page
_page_allocator.free_page(page, reclaimed);
}
+ uint64_t ZHeap::uncommit(uint64_t delay) {
+ return _page_allocator.uncommit(delay);
+ }
+
void ZHeap::before_flip() {
if (ZVerifyViews) {
// Unmap all pages
_page_allocator.unmap_all_pages();
}
< prev index next >