< prev index next >
share/memory/virtualspace.hpp
Print this page
rev 1 : G1GC+POGC+NVDIMM Patch with latest comments incorporated from all.
@@ -31,15 +31,20 @@
class ReservedSpace {
friend class VMStructs;
protected:
char* _base;
+ char* _nvdimm_base;
+ char* _nvdimm_base_nv;
size_t _size;
+ size_t _dram_size;
+ size_t _nvdimm_size;
size_t _noaccess_prefix;
size_t _alignment;
bool _special;
int _fd_for_heap;
+ int _fd_for_nvdimm;
private:
bool _executable;
// ReservedSpace
ReservedSpace(char* base, size_t size, size_t alignment, bool special,
@@ -61,11 +66,15 @@
char* requested_address = NULL);
ReservedSpace(size_t size, size_t alignment, bool large, bool executable);
// Accessors
char* base() const { return _base; }
+ char* nvdimm_base() const { return _nvdimm_base; }
+ int nvdimm_fd() const { return _fd_for_nvdimm; }
+ void setup_fd(int fd) {_fd_for_nvdimm = fd; }
size_t size() const { return _size; }
+ size_t nvdimm_size() const { return _nvdimm_size; }
char* end() const { return _base + _size; }
size_t alignment() const { return _alignment; }
bool special() const { return _special; }
bool executable() const { return _executable; }
size_t noaccess_prefix() const { return _noaccess_prefix; }
@@ -112,10 +121,11 @@
size_t attach_point_alignment, char *aligned_HBMA,
char *upper_bound, size_t size, size_t alignment, bool large);
void initialize_compressed_heap(const size_t size, size_t alignment, bool large);
// Create protection page at the beginning of the space.
void establish_noaccess_prefix();
+ void initialize_g1gc_nvdimm_dram_sizes(size_t size, size_t alignment);
public:
// Constructor. Tries to find a heap that is good for compressed oops.
// heap_allocation_directory is the path to the backing memory for Java heap. When set, Java heap will be allocated
// on the device which is managed by the file system where the directory resides.
ReservedHeapSpace(size_t size, size_t forced_base_alignment, bool large, const char* heap_allocation_directory = NULL);
< prev index next >