< 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 >