The latest round of changes to the JEP and draft implementation are now
available for review:

JEP:    http://openjdk.java.net/jeps/8207851
webrev: http://cr.openjdk.java.net/~adinn/pmem/webrev.05/

Latest Changes:

After a very helpful discussion with Alan at FOSDEM I borrowed some
hints from him and adjusted the JEP and the latest implementation to
address concerns about adding more cruft to the current JDK APIs.

The latest solution removes the extra MapMode enum values for SYNC
mappings. Instead it makes the enum constructor for MapMode public,
allowing JDK-internal FileChannel code to add some extra, extended
MapMode tags that are recognized by FileChannel.map. An API class in
package jdk.unsupported makes these enum values available for clients
that want to perform SYNC maps.

This minimizes yet further the changes to JDK public APIs. Thanks are
very much due to Alan for explaining how to tease out the dependencies here.

I also followed up Vladimir's suggestion regarding the implementation
and initialised static long field Unsafe.CACHE_LINE_FLUSH_SIZE by
injecting a value during JVM initialization rather than haing Unsafe
call out via a native at clinit. I actually added a separate
package-public class UnsafeConstants to own the static field and ran the
initialize_class call and the do_local_static_fields fixup of static
values on that class rather than on Unsafe. This should make it easy to
add a follow up patch which injects some of the other static constants
in Unsafe that are currently being accessed via native callouts (e.g.
the page size).

I believe I have also cleaned up the last few remaining issues in
previous reviews -- especially: all uses of Persistent have now been
replaced with Sync (apart from one comment where I am describing the
behaviour of the NVRAM memory)

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

Reply via email to