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

Albert Noll albert.noll at oracle.com
Wed Oct 23 00:45:49 PDT 2013


Hi Chris,

thanks for catching this. The test is not correct, since the output we 
want to check is not written to stdout.
This patch should be fine.

http://cr.openjdk.java.net/~anoll/8026949/webrev.03/ 
<http://cr.openjdk.java.net/%7Eanoll/8026949/webrev.03/>

Best,
Albert

On 23.10.2013 02:45, Christian Thalinger wrote:
>    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 
> <mailto:albert.noll at oracle.com>> wrote:
>
>> Hi,
>>
>> sure, here is the patch including the test:
>>
>> http://cr.openjdk.java.net/~anoll/8026949/webrev.02/ 
>> <http://cr.openjdk.java.net/%7Eanoll/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 
>>>> <mailto: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/ 
>>>>> <http://cr.openjdk.java.net/%7Eanoll/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 
>>>>>> <mailto: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 <mailto: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/ 
>>>>>>>>> <http://cr.openjdk.java.net/%7Eanoll/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/20131023/0a9c4979/attachment-0001.html 


More information about the hotspot-compiler-dev mailing list