RFR: 8207851: Implement JEP 352

Andrew Dinn adinn at redhat.com
Thu May 23 10:55:59 UTC 2019


Could I please have reviews of the following change set which implements
JEP 352:

JEP:    https://openjdk.java.net/jeps/352
JIRA:   https://bugs.openjdk.java.net/browse/JDK-8207851
webrev: http://cr.openjdk.java.net/~adinn/8207851/webrev.00/

I would also very much like to target this implementation for JDK13.


The webrev includes a simple test (in directory
test/jdk/java/nio/MappedByteBuffer) which ensures that an NVRAM-backed
MappedByteBuffer can be created, updated and forced using cache line
flushes. This test is marked as ignored because it requires, inter alia,
a suitably configured host, fitted with an NVRAM DIMM device or
employing a pseudo-NVAM device simulated over volatile RAM.

The above test has been run successfully on Linux x86_64 with an Optane
DIMM and with a pseduo-NVRAM device. Further, more rigorous testing has
been done in both the above configurations using the Narayana
Transactions logger and Infinispan distributed data grid.

Testing of /successful/ use of the API on Linux AArch64 has not yet been
possible with either emulated or real NVRAM devices as it requires an
updated (ARMv8.2) CPU hardware capability as well as access to AArch64
compatible NVRAM devices. n.b. an AArch64 compatibility flag
(-X:UsePOCForPOP) has been provided in the current patch to support
testing on older CPUs using simulated NVRAM. Unfortunately, it has not
yet been possible to obtain access to an AArch64 v8.1 machine that
supports simulation of NVRAM devices via volatile RAM.

In consequence, AArch64 testing has been limited to ensuring that the
relevant API failure modes correctly manifest: i.e.

  v8.1 CPUs which lack the relevant hardware instructions refuse to map
NVRAM-backed buffers trwoing UnsupportedOperationException

  v8.1 CPUs which bypass this failure via compatibility mode fail at the
mmap stage with IOException due to lack of NVRAM mapping support in the
underlying OS mmap API

It is expected that the omissions in AArch64 testing will be rectified
in the next few weeks. While this is desirable, the omissions are not
viewed as critical since there is currently no general access to the
relevant hardware.


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