< prev index next >

src/hotspot/share/gc/z/zPage.cpp

Print this page




  51     _physical(pmem) {
  52   assert_initialized();
  53 }
  54 
  55 void ZPage::assert_initialized() const {
  56   assert(!_virtual.is_null(), "Should not be null");
  57   assert(!_physical.is_null(), "Should not be null");
  58   assert((_type == ZPageTypeSmall && size() == ZPageSizeSmall) ||
  59          (_type == ZPageTypeMedium && size() == ZPageSizeMedium) ||
  60          (_type == ZPageTypeLarge && is_aligned(size(), ZGranuleSize)),
  61          "Page type/size mismatch");
  62 }
  63 
  64 void ZPage::reset() {
  65   _seqnum = ZGlobalSeqNum;
  66   _top = start();
  67   _livemap.reset();
  68   _last_used = 0;
  69 }
  70 





  71 ZPage* ZPage::retype(uint8_t type) {
  72   assert(_type != type, "Invalid retype");
  73   _type = type;
  74   _livemap.resize(object_max_count());
  75   return this;
  76 }
  77 
  78 ZPage* ZPage::split(size_t size) {
  79   return split(type_from_size(size), size);
  80 }
  81 
  82 ZPage* ZPage::split(uint8_t type, size_t size) {
  83   assert(_virtual.size() > size, "Invalid split");
  84 
  85   // Resize this page, keep _numa_id, _seqnum, and _last_used
  86   const ZVirtualMemory vmem = _virtual.split(size);
  87   const ZPhysicalMemory pmem = _physical.split(size);
  88   _type = type_from_size(_virtual.size());
  89   _top = start();
  90   _livemap.resize(object_max_count());


  51     _physical(pmem) {
  52   assert_initialized();
  53 }
  54 
  55 void ZPage::assert_initialized() const {
  56   assert(!_virtual.is_null(), "Should not be null");
  57   assert(!_physical.is_null(), "Should not be null");
  58   assert((_type == ZPageTypeSmall && size() == ZPageSizeSmall) ||
  59          (_type == ZPageTypeMedium && size() == ZPageSizeMedium) ||
  60          (_type == ZPageTypeLarge && is_aligned(size(), ZGranuleSize)),
  61          "Page type/size mismatch");
  62 }
  63 
  64 void ZPage::reset() {
  65   _seqnum = ZGlobalSeqNum;
  66   _top = start();
  67   _livemap.reset();
  68   _last_used = 0;
  69 }
  70 
  71 void ZPage::clear() {
  72   const uintptr_t addr = ZAddress::good(start());
  73   ZUtils::zero(addr, size());
  74 }
  75 
  76 ZPage* ZPage::retype(uint8_t type) {
  77   assert(_type != type, "Invalid retype");
  78   _type = type;
  79   _livemap.resize(object_max_count());
  80   return this;
  81 }
  82 
  83 ZPage* ZPage::split(size_t size) {
  84   return split(type_from_size(size), size);
  85 }
  86 
  87 ZPage* ZPage::split(uint8_t type, size_t size) {
  88   assert(_virtual.size() > size, "Invalid split");
  89 
  90   // Resize this page, keep _numa_id, _seqnum, and _last_used
  91   const ZVirtualMemory vmem = _virtual.split(size);
  92   const ZPhysicalMemory pmem = _physical.split(size);
  93   _type = type_from_size(_virtual.size());
  94   _top = start();
  95   _livemap.resize(object_max_count());
< prev index next >