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 02:46:54 PDT 2013


Thank you, Igor!

Best,
Albert

On 23.10.2013 11:25, Igor Veresov wrote:
> I think the latest version is fine.
>
> igor
>
> On Oct 23, 2013, at 1:15 AM, Albert Noll <albert.noll at oracle.com> wrote:
>
>> 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