< 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,8 +85,36 @@
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 >