RFR(S): 8026949: -Xint flag prints wrong warning: Initialization of C1 thread failed (no space to run compilers)

Christian Thalinger christian.thalinger at oracle.com
Tue Oct 22 17:45:51 PDT 2013


  44     // Check that the outputs are equal
  45     if (out1.getStdout().compareTo(out2.getStdout()) != 0) {
Is this testing the full output or only the first line?  Because the outputs are not equal:

$ java -Xint -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b109)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b56-internal-fastdebug, interpreted mode)

$ java -Xcomp -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b109)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b56-internal-fastdebug, compiled mode)


On Oct 22, 2013, at 12:18 PM, Albert Noll <albert.noll at oracle.com> wrote:

> Hi,
> 
> sure, here is the patch including the test:
> 
> http://cr.openjdk.java.net/~anoll/8026949/webrev.02/
> 
> Best,
> Albert
> 
> On 22.10.2013 20:34, igor.ignatyev at oracle.com wrote:
>> Albert, please add a jtreg test for this change. I think it is very easy: just start 'java -version' as a external process and check its output in 'Xint' and '-Xcomp' cases. If you don't think so, please file a RFE to add regression test and assign it to me.
>> 
>> Thanks.
>> - Igor
>> 
>> ----- Reply message -----
>> From: "Albert Noll" <albert.noll at oracle.com>
>> To: "Igor Veresov" <igor.veresov at oracle.com>
>> Cc: "hotspot-compiler-dev at openjdk.java.net" <hotspot-compiler-dev at openjdk.java.net>
>> Subject: RFR(S): 8026949: -Xint flag prints wrong warning: Initialization of C1 thread failed (no space to run compilers)
>> Date: Tue, Oct 22, 2013 22:03
>> 
>> Roland, Igor, thanks for looking at this.
>> 
>> I tested the patch as follows:
>> 
>> java -Xint -version .. make sure that output does not appear
>> java -Xcomp -version make sure that compiler(s) are working
>> 
>> Execution of nashorn octane + some DaCapo benchmarks. (with -Xint and -Xcomp and -Xmixed)
>> 
>> Seems to work fine.
>> 
>> Best,
>> Albert
>> 
>> On 22.10.2013 19:12, Igor Veresov wrote:
>>> Looks good.
>>> 
>>> igor
>>> 
>>> On Oct 22, 2013, at 6:15 AM, Albert Noll <albert.noll at oracle.com> wrote:
>>> 
>>>> Thanks Igor. This is a good solution.
>>>> 
>>>> Here is the webrev:
>>>> http://cr.openjdk.java.net/~anoll/8026949/webrev.01/
>>>> 
>>>> Best,
>>>> Albert
>>>> 
>>>> On 22.10.2013 08:41, Igor Veresov wrote:
>>>>> Another trivial fix option is to just bail out of CompileBroker::compilation_init() is UseCompiler is false. To avoid initializing the compiler objects and all..
>>>>> 
>>>>> igor
>>>>> 
>>>>> On Oct 21, 2013, at 11:15 PM, Albert Noll <albert.noll at oracle.com> wrote:
>>>>> 
>>>>>> Christian, Igor, thanks for the reviews.
>>>>>> 
>>>>>> There seems to be an ambiguity between -Xint and -XX:+UseCompiler. Whether we use a compiler or 
>>>>>> not, depends on the order in which the arguments are given. I am not exactly sure why we have 
>>>>>> the -XX:(+/-)UseCompiler flag at all, also as a product flag.
>>>>>> 
>>>>>> The reason why I added the checks when we determine the number of compiler threads is that we
>>>>>> do not generate the compiler objects (they are not needed). Also, the number of compiler threads 
>>>>>> is set correctly.
>>>>>> 
>>>>>> The solution proposed by Igor is simpler. If the above issues do not matter, I would also opt for the 
>>>>>> simple solution.
>>>>>> 
>>>>>> Best,
>>>>>> Albert
>>>>>> 
>>>>>> 
>>>>>> On 22.10.2013 06:17, Igor Veresov wrote:
>>>>>>> If think you can just use the existing "UseCompiler" flag, that we set to false when -Xint is specified and just not call init_compiler_threads() if UseCompiler == false.
>>>>>>> 
>>>>>>> igor
>>>>>>> 
>>>>>>> On Oct 21, 2013, at 2:54 AM, Albert Noll <albert.noll at oracle.com> wrote:
>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> could I have reviews for this small patch?
>>>>>>>> 
>>>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8026949
>>>>>>>> webrev: http://cr.openjdk.java.net/~anoll/8026949/webrev.00/
>>>>>>>> 
>>>>>>>> Problem: 8023014 introduced a wrong warning: Initialization of C1 thread failed (no space to run compilers) when the VM is started
>>>>>>>>                with -Xint
>>>>>>>> 
>>>>>>>> Solution: Do not start compiler threads if VM is started with -Xint
>>>>>>>> 
>>>>>>>> Testing: -Xint flag does not print out the false warning. Tested flag combinations:
>>>>>>>>       -XX:+TieredCompilation -Xint (-server / -client)
>>>>>>>>       -XX:-TieredCompilation -Xint   (-server / -client)
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Many thanks in advance,
>>>>>>>> Albert
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20131022/f2e78e29/attachment-0001.html 


More information about the hotspot-compiler-dev mailing list