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 03:01:46 PDT 2013


Yes, I'm fine w/ the latest version.

Best regards,
Igor Ignatyev

On 10/23/2013 01:46 PM, Albert Noll wrote:
> 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