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 READ_ONLY_PERISTENT and READ_WRITE_PERSISTENT - 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. 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