Hi Lois, On 18 Jun 2015, at 19:55, Lois Foltan <lois.fol...@oracle.com> wrote:
> > On 6/18/2015 10:59 AM, Karen Kinnear wrote: >> Code review for the hotspot component: >> >> Thank you for the cleanups to jvm.cpp to make them JVM_ENTRY and fix >> thread_state. >> >> If you pass the testing and Lois ok's the hotspot code, then I am ok with >> checking in the >> hotspot code as is. > > I have reviewed and am okay with checking in the hotspot code as is once > testing is complete. One comment inlined below. > Lois > >> >> Comments for next round of changes: >> >> 1. mutexLocker.cpp - new lock should say "false" not "true" for whether the >> VMThread should block >> >> 2. os.hpp >> restartable_read_at is added but I don't see it used >> >> 3. imageFile.cpp >> We've been asked to always used the counted form of strcpy - i.e. strncpy >> to ensure we never >> have buffer overruns. e.g. 311, 437, ... >> >> 4. jvm.cpp - seems odd that the interface would need to know if the resource >> was compressed >> or uncompressed. In the next round of API design, seems like the java code >> would pass in >> the uncompressedAddress and let the internals handle buffering the >> compressed data and >> doing the uncompressing transparently. >> >> 5. imageDecompressor.hpp >> get_decompressor >> I think you've mixed your exception handling approaches. You have a >> CHECK_NULL for new_symbol >> call, which means it will throw an exception if it returns NULL. Then you >> check for HAS_PENDING_EXCEPTION >> which is the logic you would use if did not have the CHECK, but then you >> throw the exception away. >> If you want to throw an exception from get_decompressor you should pass in >> the last argument as TRAPS macro >> which will give you the THREAD. >> >> see macros in exceptions.hpp >> >> So the way it is right now, you will throw an exception. >> >> You have a choice - you can throw an exception >> pass in TRAPS to get_decompressor, keep the CHECK_NULL and remove the if >> HAS_PENDING_EXCEPTION. >> - this is the recommended approach >> >> Alternative - change CHECK_NULL to pass in THREAD. Keep the rest. Given you >> are planning to take this >> out of the vm - this would make more sense. > > Whatever mechanism you choose to use in get_decompressor, please also use for > image_decompressor_init( )/createSymbol() within imageDecompressor.cpp as > well. OK, well noted. Thanks. JF > >> >> thanks, >> Karen >> >> >> >> On Jun 17, 2015, at 8:08 PM, Jim Laskey (Oracle) wrote: >> >>> https://bugs.openjdk.java.net/browse/JDK-8080511 >>> >>> This is an long overdue refresh of the jimage support in the JDK9-dev repo. >>> This includes native support for reading jimage files, improved jrt-fs >>> (java runtime file system) support for retrieving modules and packages from >>> the runtime, and improved performance for langtools in the presence of >>> jrt-fs. >>> >>> http://cr.openjdk.java.net/~jlaskey/hs-rt-jimage/webrev-top >>> <http://cr.openjdk.java.net/~jlaskey/hs-rt-jimage/webrev-top> >>> http://cr.openjdk.java.net/~jlaskey/hs-rt-jimage/webrev-jdk >>> <http://cr.openjdk.java.net/~jlaskey/hs-rt-jimage/webrev-jdk> >>> http://cr.openjdk.java.net/~jlaskey/hs-rt-jimage/webrev-hotspot >>> <http://cr.openjdk.java.net/~jlaskey/hs-rt-jimage/webrev-hotspot> >>> http://cr.openjdk.java.net/~jlaskey/hs-rt-jimage/webrev-langtools >>> <http://cr.openjdk.java.net/~jlaskey/hs-rt-jimage/webrev-langtools> >>> >>> >>> Details: >>> >>> - jrt-fs provides access, via the nio FileSystem API, to the classes in a >>> .jimage file, organized by module or by package. >>> - Shared code for jimage support converted to native. Currently residing >>> in hotspot, but will migrate to it’s own jdk library >>> https://bugs.openjdk.java.net/browse/JDK-8087181 >>> <https://bugs.openjdk.java.net/browse/JDK-8087181> >>> - A new archive abstraction for class/resource sources. >>> - java based implementation layer for jimage reading to allow backport to >>> JDK8 (jrt-fs.jar - IDE support.) >>> - JNI support for jimage into hotspot. >>> - White box tests written to exercise native jimage support. >>> >