RFR(S): 8026949: -Xint flag prints wrong warning: Initialization of C1 thread failed (no space to run compilers)
Igor Ignatyev
igor.ignatyev at oracle.com
Wed Oct 23 00:48:35 PDT 2013
> Is this testing the full output or only the first line?
full output, but '-version' by default uses stderr, so stdouts should be
empty and equal.
I think it would be better to add vm flags to explicitly use of stdout
for warnings -- -XX:+DisplayVMOutputToStdout.
Best regards,
Igor Ignatyev
On 10/23/2013 04:45 AM, 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
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
More information about the hotspot-compiler-dev
mailing list