Supporting allocation of Java object heap on NV-DIMMS

Per Liden per.liden at
Mon Apr 4 11:36:53 UTC 2016


On 2016-04-02 03:13, Kharbas, Kishor wrote:
> Hello all,
> I would like to propose adding a capability in the JVM to allocate
> object heap on new kinds of heterogeneous memories which are exposed
> through a file system. This could be achieved by adding a command line
> option to specify a path in the filesystem which would be used for
> mmap() system call.
> Details:
> Linux kernel 4.0 onwards supports DAX mode[1] in Ext4 file system [2]
> which is designed to support new heterogeneous memory devices such as
> Intel’s 3D XPoint memory [3]. DAX mode removes the need for page cache
> and provides a direct mapping of process virtual space to storage space.
> We would like to add a command line option called “FSDirForHeap” which
> will – 1) Enable using a file system as backing store for Java object
> heap 2) Use the provided path to create a temporary file for mmap()
> system call.

The new kinds of memories opens up for some new and interesting 
possibilities. However, as long as DRAM is faster (which I assume they 
will continue be for at least some time), I have a hard time seeing that 
you want to place your whole heap onto the NV-DIMMs. I can see that some 
applications might want to place some large subset of their data there 
(e.g. an in memory-database), but I'm also guessing that placing the 
whole heap there would come with a noticeable impact on performance? Any 
thoughts on that?

Do you have any data to share with regards to performance difference on 
some relevant workloads? That would help in getting a better 
understanding of the feasibility of this mode of operation.


> The description of the feature can be found at
> and the webrev is uploaded at
> References:
> [1]
> [2]
> [3]
> Much appreciated!
> Thanks you.
> Kishor Kharbas

More information about the hotspot-gc-dev mailing list