[11] RFR(S) 8205400: [Graal] compiler/jvmci/compilerToVM/DisassembleCodeBlobTest.java fails with can't be enqueued for compilation on level 4
Tobias Hartmann
tobias.hartmann at oracle.com
Tue Jun 26 14:01:19 UTC 2018
Hi Vladimir,
this looks good to me.
Best regards,
Tobias
On 23.06.2018 00:04, Vladimir Kozlov wrote:
> http://cr.openjdk.java.net/~kvn/8205400/webrev.00/
> https://bugs.openjdk.java.net/browse/JDK-8205400
>
> I was not able to reproduce the problem. I did 170 runs of the test with Graal in mach5. I can only
> speculate what happen.
> By default JVMCI and Graal are initialized only on first tier4 compilation request. Usually there
> are hot methods which trigger such compilation and initialization before the test requests compilation.
>
> It is still possible that test's compilation request is the first.
> The test asks blocking (BackgroundCompilation = false) compilation to wait when it complete [1].
> But JVMCI code will unblock first compilation when JVMCI and Graal are not initialized yet [2].
> As result execution continue before Graal's compilation finished (or even started) and
> WB::compile_method() will return NULL value.
>
> To trigger eager JVMCI and Graal initialization flag -XX:+EagerJVMCI or -Xbatch
> (-XX:-BackgroundCompilation) should be used to run test. And 2 of jvmci/compilerToVM/ tests which
> use the same WB compilation API are using -XX:-BackgroundCompilation. I am suggesting to do the same
> in 2 other tests.
>
> To find if this is really what happen I added error prints in WhiteBox::compile_method() which have
> several cases when it can return false.
>
> Tested with tier1,tier2,tier3-graal,precheckin-comp
>
> [1]
> http://hg.openjdk.java.net/jdk/jdk/file/d91a64467683/test/hotspot/jtreg/compiler/jvmci/compilerToVM/CompileCodeTestCase.java#l108
>
> [2]
> http://hg.openjdk.java.net/jdk/jdk/file/d91a64467683/src/hotspot/share/compiler/compileBroker.cpp#l1082
>
More information about the hotspot-compiler-dev
mailing list