< prev index next >

src/hotspot/share/gc/g1/g1RegionToSpaceMapper.hpp

Print this page
rev 52611 : webrev.00
rev 52613 : webrev.01


  89                                               MemoryType type);
  90 
  91   static G1RegionToSpaceMapper* create_heap_mapper(ReservedSpace rs,
  92                                                    size_t actual_size,
  93                                                    size_t page_size,
  94                                                    size_t region_granularity,
  95                                                    size_t byte_translation_factor,
  96                                                    MemoryType type);
  97 };
  98 
  99 // G1RegionToSpaceMapper implementation where 
 100 // part of space is mapped to dram and part to nv-dimm
 101 class G1RegionToHeteroSpaceMapper : public G1RegionToSpaceMapper {
 102 private:
 103   size_t _pages_per_region;
 104   G1RegionToSpaceMapper* _dram_mapper;
 105   uint _num_committed_dram;
 106   uint _num_committed_nvdimm;
 107   uint _start_index_of_nvdimm;
 108   uint _start_index_of_dram;
 109 
 110   void map_nvdimm_space(ReservedSpace rs);
 111 
 112 public:
 113   G1RegionToHeteroSpaceMapper(ReservedSpace rs, size_t used_size, size_t page_size, size_t region_granularity, size_t commit_factor, MemoryType type);
 114   uint num_committed_dram();
 115   uint num_committed_nvdimm();

 116 
 117   virtual void commit_regions(uint start_idx, size_t num_regions = 1, WorkGang* pretouch_workers = NULL);
 118   virtual void uncommit_regions(uint start_idx, size_t num_regions = 1);
 119 };
 120 #endif // SHARE_VM_GC_G1_G1REGIONTOSPACEMAPPER_HPP


  89                                               MemoryType type);
  90 
  91   static G1RegionToSpaceMapper* create_heap_mapper(ReservedSpace rs,
  92                                                    size_t actual_size,
  93                                                    size_t page_size,
  94                                                    size_t region_granularity,
  95                                                    size_t byte_translation_factor,
  96                                                    MemoryType type);
  97 };
  98 
  99 // G1RegionToSpaceMapper implementation where 
 100 // part of space is mapped to dram and part to nv-dimm
 101 class G1RegionToHeteroSpaceMapper : public G1RegionToSpaceMapper {
 102 private:
 103   size_t _pages_per_region;
 104   G1RegionToSpaceMapper* _dram_mapper;
 105   uint _num_committed_dram;
 106   uint _num_committed_nvdimm;
 107   uint _start_index_of_nvdimm;
 108   uint _start_index_of_dram;
 109   bool _success;

 110 
 111 public:
 112   G1RegionToHeteroSpaceMapper(ReservedSpace rs, size_t used_size, size_t page_size, size_t region_granularity, size_t commit_factor, MemoryType type);
 113   uint num_committed_dram() const;
 114   uint num_committed_nvdimm() const;
 115   bool success() { return _success; }
 116 
 117   virtual void commit_regions(uint start_idx, size_t num_regions = 1, WorkGang* pretouch_workers = NULL);
 118   virtual void uncommit_regions(uint start_idx, size_t num_regions = 1);
 119 };
 120 #endif // SHARE_VM_GC_G1_G1REGIONTOSPACEMAPPER_HPP
< prev index next >