< prev index next >
src/hotspot/share/gc/g1/g1RegionToSpaceMapper.hpp
Print this page
rev 51649 : version 1
rev 52017 : All changes for G1 GC moved from 'combined' repo folder
rev 52487 : Worked on comments from Sangheon, Stefan
*** 85,92 ****
--- 85,120 ----
size_t actual_size,
size_t page_size,
size_t region_granularity,
size_t byte_translation_factor,
MemoryType type);
+
+ static G1RegionToSpaceMapper* create_heap_mapper(ReservedSpace rs,
+ size_t actual_size,
+ size_t page_size,
+ size_t region_granularity,
+ size_t byte_translation_factor,
+ MemoryType type);
};
+ // G1RegionToSpaceMapper implementation where
+ // part of space is mapped to dram and part to nv-dimm
+ class G1RegionToHeteroSpaceMapper : public G1RegionToSpaceMapper {
+ private:
+ size_t _pages_per_region;
+ G1RegionToSpaceMapper* _dram_mapper;
+ uint _num_committed_dram;
+ uint _num_committed_nvdimm;
+ uint _start_index_of_nvdimm;
+ uint _start_index_of_dram;
+ bool _success;
+
+ public:
+ G1RegionToHeteroSpaceMapper(ReservedSpace rs, size_t used_size, size_t page_size, size_t region_granularity, size_t commit_factor, MemoryType type);
+ uint num_committed_dram() const;
+ uint num_committed_nvdimm() const;
+ bool success() { return _success; }
+
+ virtual void commit_regions(uint start_idx, size_t num_regions = 1, WorkGang* pretouch_workers = NULL);
+ virtual void uncommit_regions(uint start_idx, size_t num_regions = 1);
+ };
#endif // SHARE_VM_GC_G1_G1REGIONTOSPACEMAPPER_HPP
< prev index next >