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

Andrew Dinn adinn at redhat.com
Wed Jul 25 11:44:38 UTC 2018

Round 2
I have updated the JEP and uploaded a revised webrev in the light of
existing feedback

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

  Formatted JEP: http://openjdk.java.net/jeps/8207851

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

I would welcome any further comments (I guess I'd be happy to push this
as is but I find it hard to believe it does not require more work.
Someone must have something to add :-)

List of Changes

I have followed Alan's request:

 - extending FileChannel.MapMode to add two new modes

  - retaining the single method FileChannel.map to handle the new modes
(i.e. dumping the idea of a separate map_peristent API)

  - FileChannelImpl.map now handles the relevant XXX_PERSISTENT cases
(rather than delegating to an internal method)

I have followed Florian's advice:

  corrected spelling and format of the JEP, incuding made a clearer
separation of description of API changes from implementation details

  modified the conditional compilation conditions and associated
comments in FileChannelImpl.c to define MAP_SYNC and MAP_PRIVATE when
the OS does not do so

I have also brought the implementation of the pre-sync and post-sync
operations in line with the libpmem code:

  On x86

  pre-sync is a no-op
  post-sync is an no-op if clflush is used for writeback
  post-sync is an sfence if clflushopt or clwb is used for writeback

  On AArch64

  pre-sync is a no-op
  post-sync is a dmb(ISH)

Finally, I have updated the JEP text to reflect all the above changes.


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