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 01:15:41 PDT 2013


Hi Igor,

are you fine with the lastest version, or should I add the 
-XX:+DisplayVMOutputToStdout to the test?

Best,
Albert

On 23.10.2013 09:48, Igor Ignatyev wrote:
> > 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