RFR: AArch64: JDK-8241665: Configuring --with-jvm-features=-compiler2 fails to build on AArch64

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Mar 27 20:00:51 UTC 2020


Hi Andrew

Your fix looks fine to me. It matches guards in sharedRuntime_x86_64.cpp.

About jvmci tests failures. I built jdk without C2 on x86 and reproduced failures you saw.
I filed https://bugs.openjdk.java.net/browse/JDK-8241779
It should not block your fix.

Thanks,
Vladimir

On 3/27/20 3:28 AM, Andrew Dinn wrote:
> Can I please have reviews for this fix which enables AARch64 to build
> when the compiler2 is excluded as a build feature:
> 
>    JIRA:   https://bugs.openjdk.java.net/browse/JDK-8241665
>    webrev: http://cr.openjdk.java.net/~adinn/8241665/webrev.00/
> 
> I think this should go through even though some of the testing failed
> for what I believe are issues in shared code (if nothing else, fixing
> this is the only way to investigate the test failures on AArch64). See
> below for further details.
> 
> Testing:
> 
> Built an AArch64 image with compiler2 feature omitted
> Compiled and ran HelloWorld.
> Ran tier1 tests (for the LOLs :-)
> 
>    - Most tests passed including most of the compiler (and C2 compiler
> tests!).
>    - There were expected failures in c2 tests and some explicable
> failures in other compiler tests and serviceability tests
>    - A few bignum tests failed because of timeouts.
>    - Interestingly quite a few JVMCI tests failed.
> 
> The JVMCI tests do not look to be anything to do with the AArch64 fix or
> to be Aarch64-specific. So, I don't recommend stopping this patch going
> trough because of them. However, since JVMCI support is supposed to work
> decoupled from COMPILER2 support they suggest that this decoupling has
> not been correctly implemented and needs looking into as a follow-up.
> Here are the failed tests (basic details of the error are provided
> afterwards labelled with letters).
> 
>      1) compiler/jvmci/compilerToVM/IsCompilableTest.java [a]
>      2) compiler/jvmci/compilerToVM/IsMatureVsReprofileTest.java [b]
>      3) compiler/jvmci/compilerToVM/ReprofileTest.java [c]
>      4) compiler/jvmci/events/JvmciNotifyBootstrapFinishedEventTest.java [a]
>      5) compiler/jvmci/events/JvmciNotifyInstallEventTest.java [a]
>      6) compiler/jvmci/TestEnableJVMCIProduct.java [a]
>      7) compiler/jvmci/TestJVMCIPrintProperties.java [a]
> 
> The bulk of the failed tests were derailed by assert [a] in
> compileBroker.cpp:849 which crashed the test JVM. A few tests were
> stopped by an assert in the test itself. However, ni som ecases that
> test assert may well be the result of a crash in a spawned othervm JVM
> caused by [a]. Note that test 6 asserted in the test when the othervm
> run crashed because of assert [a].
> 
> [a] assert ((_c2_count > 0) || (_c1_count > 0))
> [b] assert metaspaceMethodData != 0 where WB.getMethodData(method) after
> compile
> [c] assertNE(startProfile.toString(), compProfile.toString) ==>
> "profiling info wasn't changed after 1500 invocations: expected
> DefaultProfilingInfo<> to not equal DefaultProfilingInfo<>"
> 
> 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
> 


More information about the hotspot-compiler-dev mailing list