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