TestOverloadCompileQueues sometimes doesn't test anything
Tobias Hartmann
tobias.hartmann at oracle.com
Thu Mar 28 07:54:20 UTC 2019
Hi Andrew,
On 27.03.19 17:57, Andrew Haley wrote:
> This test sets -XX:-TieredCompilation -XX:CompileThreshold=2
> -XX:CICompilerCount=1 then repeatedly loads classes and invokes their
> methods. However, in testing as often as not this test exits *before*
> any of the test classes have been compiled, so the test is completely
> ineffective. If I set CICompilerCount=8 I can get some unloading.
>
> This is with a debug build: I need that for assertions.
I've added this test with my fix for 8163511 [1]. Its purpose is not to compile methods but to *try*
to overload the compile queue with compilation requests. CICompilerCount is set to 1 to prevent the
compiler threads to keep up with these requests.
Since it's a regression test, the behavior you are observing is expected - it means that the fix
works and unloaded methods are removed from the queue before it fills up. Otherwise, you would hit
the "leaking compilation tasks" assert (at least with the configuration/machines I've tested on, the
test might not always reproduce the problem).
Here is a detailed explanation:
https://mail.openjdk.java.net/pipermail/hotspot-dev/2019-February/037006.html
Best regards,
Tobias
[1] https://bugs.openjdk.java.net/browse/JDK-8163511
More information about the hotspot-dev
mailing list