RFR(S) 8205105: VM crashes with "assert(Universe::heap()->is_in_reserved(start + words - 1)) failed: not in heap

Tom Rodriguez tom.rodriguez at oracle.com
Thu Jun 21 01:07:29 UTC 2018



Vladimir Kozlov wrote on 6/20/18 4:43 PM:
> On 6/20/18 4:17 PM, Igor Veresov wrote:
>>
>>
>>> On Jun 20, 2018, at 3:43 PM, Vladimir Kozlov 
>>> <vladimir.kozlov at oracle.com> wrote:
>>>
>>> On 6/20/18 3:22 PM, Igor Veresov wrote:
>>>>> On Jun 20, 2018, at 3:20 PM, Vladimir Kozlov 
>>>>> <vladimir.kozlov at oracle.com> wrote:
>>>>>
>>>>> Why Graal is affected even when LOHP is not used?
>>>> LOHP is dynamically turned on by JVMTI.
>>>
>>> Okay. In other world we can't use fast TLAB refill because JVMTI can 
>>> switch on LOHP at any time. Got it.
>>>
>>
>> Well, unless we want to add an additional dynamic check of the LOHP 
>> state. That’s also a possible solution if we want to keep the fast 
>> TLAB refill.
> 
> Nope. We removed it from Hotspot in JDK 11. I don't think we should 
> spend time supporting it in Graal.

I'll file an issue to remove it completely from Graal, even in JDK8.  It 
was something that came over from C1 where it was really a client side 
optimization since TLABs were small and fixed size in the -client world. 
  I think it's not likely to be particularly beneficial in the tiered world.

tom

> 
>>
>>> I still did not get why GC tests which do not use LOHP still fail 
>>> with Graal. And how these changes fix it?
>>
>> Because, as Stefan noted in the bug, when Graal does fast TLAB refill 
>> it does so without setting the new _allocation_end field.
> 
> It means Graal uses fast TLAB refill by default. That is answer I was 
> waiting for.
> 
>> The changes fix it by avoiding manually allocating TLABs in the stub 
>> (during fast TLAB refill) and calling the runtime instead.
> 
> Okay. Got it. Reviewed.
> 
> Thanks,
> Vladimir
> 
>>
>> igor
>>
>>>
>>> Thanks,
>>> Vladimir
>>>
>>>>>
>>>>> I don't see changes which mapped new TLAB fields added by 
>>>>> Low-Overhead Heap Profiling.
>>>>>
>>>>> I don't see your answers to Stefan's comment in bug report about 
>>>>> Graal's code which is not fixed for _allocation_end.
>>>>>
>>>>> Does Graal still use fast TLAB refill as default mode?
>>>> You cannot use TLAB refill with LOHP at all.
>>>>>
>>>>> FastTLABRefill was deprecated by 8194084: "Obsolete FastTLABRefill 
>>>>> and remove the related code":
>>>>>
>>>>> http://hg.openjdk.java.net/jdk/jdk/rev/9010e596f391
>>>>>
>>>>> Should we remove it from Graal too?
>>>>>
>>>> Not for JDKs <11.
>>>> igor
>>>>> Thanks,
>>>>> Vladimir
>>>>>
>>>>> On 6/20/18 2:47 PM, Igor Veresov wrote:
>>>>>> Low-Overhead Heap Profiling is not compatible with fast TLAB 
>>>>>> refill. It needs to be disabled.
>>>>>> Webrev: http://cr.openjdk.java.net/~iveresov/8205105/webrev/
>>>>>> Thanks,
>>>>>> igor
>>


More information about the hotspot-compiler-dev mailing list