RFR: 8207851 JEP Draft: Support ByteBuffer mapped over non-volatile memory

Andrew Dinn adinn at redhat.com
Fri Jul 20 13:50:22 UTC 2018


I have finally managed to draft a JEP to formally present the proposal I
circulated a month or two back regarding support for MappedByteBuffer
access to non-volatile memory.

JEP JIRA:
  https://bugs.openjdk.java.net/browse/JDK-8207851

The JEP references a re-implementation of the proposed API:

  http://cr.openjdk.java.net/~adinn/pmem/webrev.01/

The rework addresses some of the feedback provided in the initial
discussion:

Previous Thread:
  (starts in May archive)
  http://mail.openjdk.java.net/pipermail/core-libs-dev/2018-May/053317.html
(continues into June archive at)
  http://mail.openjdk.java.net/pipermail/core-libs-dev/2018-June/053673.html

In particular, the re-implementation has split the original Hotspot
intrinsic used to guarantee writeback an address range into 3 intrinsics
relocated into class Unsafe which

  write back a single cache line
  perform any necessary memory sync pre-writeback
  perform any necessary memory sync post-writeback

Also, the implementation has been extended from Linux on x86_64 to also
coater for Linux on AArch64. The latter version compiles and generates
correct code but has not yet been tested because I have not yet obtained
access to a box with a suitably up to date kernel.

Comments and suggestions for improvement would be very welcome.

n.v. Jonathan Halliday is about to get his hands on an x86 box with a
real NVM dimm so we may soon be able to try this out with NVM proper
rather than testing with volatile memory pretending to be NVM.

regards,


Andrew Dinn
-----------
Senior Principal Software Engineer
Red Hat UK Ltd
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham, Michael ("Mike") O'Neill, Eric Shander


More information about the core-libs-dev mailing list