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

Tom Rodriguez tom.rodriguez at oracle.com
Fri Nov 22 18:27:20 UTC 2019



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