RFR 8234359: [JVMCI] invalidate_nmethod_mirror shouldn't use a phantom reference

Vladimir Kozlov vladimir.kozlov at oracle.com
Sat Nov 23 02:03:54 UTC 2019


Hi Tom

8234429 was just fixed. Please, rebase your changes and test it again.

Thanks,
Vladimir

On 11/22/19 10:27 AM, Tom Rodriguez wrote:
> 
> 
> Vladimir Kozlov wrote on 11/21/19 10:21 AM:
>> On other hand there is testing failure which seems 8234429.
>>
>> May be we should hold this fix until 8234429 is resolved. And retest again after it fixed
> 
> Whatever you like is fine with me.  Just let me know.
> 
> tom
> 
>>
>> Thanks,
>> Vladimir
>>
>> On 11/21/19 10:15 AM, Vladimir Kozlov wrote:
>>> +1
>>>
>>> Vladimir K
>>>
>>> On 11/20/19 10:50 PM, Erik Österlund wrote:
>>>> Hi Tom,
>>>>
>>>> Looks good.
>>>>
>>>> Thanks,
>>>> /Erik
>>>>
>>>>> On 21 Nov 2019, at 06:22, Tom Rodriguez <tom.rodriguez at oracle.com> wrote:
>>>>>
>>>>> http://cr.openjdk.java.net/~never/8234359/webrev
>>>>> https://bugs.openjdk.java.net/browse/JDK-8234359
>>>>>
>>>>> While testing the latest JVMCI in JDK11, crashes were occurring during draining of the SATB buffers.  The problem 
>>>>> was tracked down to invalidate_nmethod_mirror being called on an nmethod whose InstalledCode instance was also dead 
>>>>> in the current GC. Reading this oop using NativeAccess<ON_PHANTOM_OOP_REF> lead to that oop being enqueued in the 
>>>>> SATB buffer.  In JDK 14 it appears some other change in G1 disables those barriers at the point this code is 
>>>>> executed but in JDK11 no such logic exists.  This code never resurrects that oop so using the normal 
>>>>> AS_NO_KEEPALIVE semantics is correct and avoids attempting to enqueue the potentially dead object.
>>>>>
>>>>> tom
>>>>


More information about the hotspot-compiler-dev mailing list