summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew McDermott <andrew.mcdermott@linaro.org>2014-03-27 17:16:51 +0000
committerAndrew McDermott <andrew.mcdermott@linaro.org>2014-03-28 09:33:22 +0000
commit873fd741293f9b9562c993b927b9c55c26075887 (patch)
tree48d02a3c3dbb93aeadb5c7b32913f29b811dff33
parentdff8d7fe00b0dbb49f209d63e0111d3ec10fe53e (diff)
14.03: update OpenJDK release notes for FCS release
Change-Id: I6f86b937bdb053e2a35bc81d24f6abdab1f6a89c Signed-off-by: Andrew McDermott <andrew.mcdermott@linaro.org>
-rw-r--r--OPENJDK.textile88
1 files changed, 65 insertions, 23 deletions
diff --git a/OPENJDK.textile b/OPENJDK.textile
index c0587ea..58e7c65 100644
--- a/OPENJDK.textile
+++ b/OPENJDK.textile
@@ -1,47 +1,89 @@
-h1. OpenJDK 8 snapshot for AArch64
+h1. OpenJDK FCS Release for AArch64
-This is a client (C1) and server (C2) release of OpenJDK 8 for AArch64. This release is based on tag 'jdk8-b111' of the OpenJDK source tree.
+The 14.03 release of OpenJDK is a fully functional, stable release of OpenJDK. It has been extensively tested using test suites including the "JTREG":http://openjdk.java.net/jtreg/, JCK and "Mauve":http://www.sourceware.org/mauve/ test suites as well as real work applications such as Hadoop, Eclipse and industry standard benchmarks such as SPECjvm2008 and PECjbb2013. There are no known critical failures when used with standard options. There are a number of failures when used with certain non standard options. These failure are detailed below.
-The AArch64 branch of this tree is found at:
+The release is being made available in two variants:
-* "aarch64-port/jdk8":http://hg.openjdk.java.net/aarch64-port/jdk8
+h2. OpenJDK 8
-The release may be obtained either as part of the Linaro OpenEmbedded 14.03 leg-java image, as a standalone binary tarball or as a Fedora 19 RPM.
+The OpenJDK 8 release is based on the jdk8-b132 tag of the main OpenJDK 8 "tree":http://hg.openjdk.java.net/jdk8/jdk8. This corresponds to the "General Availability" release announced on "2014/03/18":http://openjdk.java.net/projects/jdk8.
-The OpenEmbedded 14.03 image may be found at:
+h2. OpenJDK 7
-* "vexpress64-openembedded_lamp-armv8-gcc-4.8_20140323-616.img.gz":http://releases.linaro.org/14.03/openembedded/aarch64/vexpress64-openembedded_lamp-armv8-gcc-4.8_20140323-616.img.gz
+As JDK8 is a complete revision of JDK, a backport to OpenJDK 7 is provided for compatibility with the known and proven JDK7. This release is based on the jdk7u60-b04 tag of the JDK7 updates "tree":http://hg.openjdk.java.net/jdk7u/jdk7u.
-The binary tarball may be found at:
+h2. Supported HotSpot Technologies
-* "java-8-openjdk.tar.gz":https://releases.linaro.org/14.03/openembedded/aarch64/java-8-openjdk.tar.gz
+Both OpenJDK releases support the Client (C1) and Server (C2) JIT compilers in addition to supporting the Template assembler based interpreter and the 'Zero' C based interpreter.
-The Fedora 19 RPM may be found at:
+The default execution model is Server (C2) JIT using Tiered Compilation. Under this model code is first executed by the Template nterpreter. When code is deemed to be 'hot' it is compiled initially using the Client (C1) JIT. The code compiled by the C1 JIT contains profiling code. If a method is deemed to be sufficiently hot it is recompiled with the Server (C2) JIT. The C2 JIT uses the profiling information collected by the C1 JIT to generate highly optimal execution path targetted code.
-* "aarch64_port-preview_rc2":http://jvanek.fedorapeople.org/aarch64_port-preview_rc2/
+Different execution models may be selected using the following command line options.
-h2. Running OpenJDK 8
+* -server - The default Server (C2) JIT
+* -client - The Client (C1) JIT
+* -Xint - The Template assembler based interpreter
+* -zero - The 'Zero' C based interpreter
-By default this build of OpenJDK 8 will run the client (C1) compiler. To run the server (C2) compiler invoke as 'java -server'.
+In addition the following options may be specified
-h2. Release Status
+* -XX:+TieredCompilation
+*** The default with -server. Enable Tiered compilation as described above.
+* -XX:-TieredCompilation
+*** Disable Tiered compilation. Code is compiled directly with the Server (C2) JIT. Using this option will generate less efficient code because the profiling information gathered by the C1 compiler will not be available.
-The client (C1) version of this release represents a fully functional stable release with no known critical faults. However, there are corner cases in the test suites that currently fail but they are being addressed.
+h2. Source and binary bundles
-The server (C2) version should be considered a preview release only. It is believed to be fully functional but there are known critical faults.
+Source bundles may be downloaded from:
-h2. Testing and Continuous Integration
+* "OpenJDK 8":http://openjdk.linaro.org/archives/fcs/source/jdk8_fcs.tgz
-Testing of OpenJDK 8 is done by running the "Mauve":http://www.sourceware.org/mauve/ and "JTREG":http://openjdk.java.net/jtreg/ test suites on a daily basis.
+* "OpenJDK 7":http://openjdk.linaro.org/archives/fcs/source/jdk7_fcs.tgz
-The tests are executed via the "LAVA":https://wiki.linaro.org/Platform/LAVA test environment and are run on the "ARM FastModels":https://releases.linaro.org/14.03/openembedded/aarch64/#tabs-5.
+Pre-built binaries may be downloaded from:
-Only the hotspot tests are being run from the JTREG test suite as the current focus is on the AArch64 client (C1) and server (C2) compilers.
+* "OpenJDK 8":http://openjdk.linaro.org/archives/fcs/binary/jdk8_image.tgz
+
+* "OpenJDK 7":http://openjdk.linaro.org/archives/fcs/binary/jdk7_image.tgz
h2. Test Results
-Tests run on the FastModels are captured in the daily "image reports":https://validation.linaro.org/dashboard/image-reports/leg-java-arm8v.
+There are two categories of tests run on a daily basis.
+
+h3. Lava Testing
+
+These tests are run on the foundation model. Because of the performance limitations of the foundation model a limited subset of the JTreg and Mauve test suites are run daily.
+
+"Results":https://validation.linaro.org/dashboard/image-reports/leg-java-armv8 are published daily.
+
+h3. Hosted Testing
+
+These tests are run on ARMv8 hardware which is hosted in our Cambridge lab but is not publicly available in LAVA. The entire JTreg test suite is run on a daily basis for both Client and Server JITs.
+
+Results are published by email to aarch64-port-dev@openjdk.java.net. This email list may be subscribed to by visiting:
+
+* "E-mail subscription":http://openjdk.java.net/projects/aarch64-port
+
+Note: that for the hosted tests, if the daily test determines that there has been no change to the source tree then the tests are not run. This is done to reduce bandwidth on the email list.
+
+Note: In spite of the slowness of the tests executed on the foundation model, which prevents complete test execution on a daily basis, we periodically verify that the complete test execution provides the very same identical results on both the foundation model and the real h/w in our lab. Please note that no performance numbers are posted to the mailing lists, only functional pass/fail test results.
+
+h2. Known Failures
+
+h3. -XX:+UseBiasedLocking causes a fatal error
+
+* The implementation of Biased Locking has not been completed in the AArch64 port and use of this option may cause fatal errors.
+
+Workaround: Do not use the -XX:+UseBiasedLocking option.
+
+h3. Assertion failure with -XX:-InlineObjectHash and -XX:-ProfileInterpreter
+
+This combination of options may cause the following fatal error to be generated:
+
+* assert(false) failed: this call site should not be polymorphic
+
+Workaround: Do not use this combination of options.
-h2. Known Problems
+h2. Acknowledgements
-When invoking java with -server (C2) occasional SIGSEGVs have been seen in the parallel garbage collector. This tends to occur in highly multi-threaded applications. The workaround is to use -XX:-UseParallelGC when invoking java.
+We would like to thank RedHat, and especially Andrew Haley and Andrew Dinn, for starting this project and for the huge efforts they have put in to deliver a high quality, high performance Java solution for AArch64 which is available as Open Software. We would also like to thank all in the Open Source community who have contributed to the projects, either through bug fixes or suggestions or through testing early releases of the software and submitting bug reports.