RFR(S): 8154151: VM crashes with assert "Ensure we don't compile before compilebroker init"

Nils Eliasson nils.eliasson at oracle.com
Mon Apr 18 09:39:23 UTC 2016


Thank you Vladimir,

I have verified the test executes in JPRT.

Regards,
Nils

On 2016-04-15 19:14, Vladimir Kozlov wrote:
> Looks good. Make sure the test is executed in JPRT.
>
> Thanks,
> Vladimir
>
> On 4/15/16 4:22 AM, Nils Eliasson wrote:
>> Hi Tobias,
>>
>> Thanks for your feedback!
>>
>> New webrev: http://cr.openjdk.java.net/~neliasso/8154151/webrev.03
>>
>> Regards,
>> Nils
>>
>> On 2016-04-15 13:15, Tobias Hartmann wrote:
>>> Hi Nils,
>>>
>>> On 15.04.2016 11:39, Nils Eliasson wrote:
>>>> Thanks Vladimir!
>>>> On 2016-04-15 01:41, Vladimir Kozlov wrote:
>>>>> I agree with this simple change as the fix.
>>>>> Note, -Xcomp does not switch off Interpreter (we can run without 
>>>>> Interpreter). We use !UseInterpreter as indication
>>>>> if Xcomp was used.
>>>>> I don't see a PIT link in the bug report.
>>>> There was none, Tobias found this regression testing something else.
>>>>
>>>> Now I have added a regression test: 
>>>> hotspot/test/compiler/startup/TieredStopAtLevel0SanityTest.java
>>>>
>>>> Webrev: http://cr.openjdk.java.net/~neliasso/8154151/webrev.02/
>>> Please set the test copyright date to 2016. I would maybe also 
>>> change the test summary to what you wrote in line 30
>>> ("Sanity test flag combo..") because this has nothing to do without 
>>> support for blocking compiles.
>>>
>>> Otherwise looks good to me.
>>>
>>> Best regards,
>>> Tobias
>>>
>>>> Regards,
>>>> Nils
>>>>
>>>>> Thanks,
>>>>> Vladimir
>>>>>
>>>>> On 4/14/16 6:17 AM, Nils Eliasson wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Please review this fix.
>>>>>>
>>>>>> Summary:
>>>>>> In JDK-8150646 I added an assert in compile_method that the 
>>>>>> compiler must not be NULL. Before there was a return
>>>>>> there that just ignored the compile.
>>>>>>
>>>>>> Running the VM with the flag combination -Xcomp and 
>>>>>> -XX:TieredStopAtLevel=0 creates a special situation:
>>>>>> UseInterpreter is set to false (but the interpreter it is still 
>>>>>> available) and then some
>>>>>> essential methods are forced to be compiled, but the initial 
>>>>>> complevel becomes 0 and hits the assert in compileBroker.
>>>>>>
>>>>>> Solution:
>>>>>> We could discuss if it should be allowed to submit compiles on 
>>>>>> level 0, a change that would become a bit larger.
>>>>>> This time I choose to extend the _initalized check in 
>>>>>> compile_method. I didn't add any
>>>>>> logging or warning because this is really a corner case.
>>>>>>
>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8154151
>>>>>> Webrev: http://cr.openjdk.java.net/~neliasso/8154151/webrev.01/
>>>>>> (Ignore the extra tags in the webrev)
>>>>>>
>>>>>> Best regards,
>>>>>> Nils Eliasson
>>



More information about the hotspot-compiler-dev mailing list