RFR: 8212996: Use AS_NO_KEEPALIVE when accessing dead java.lang.invoke.CallSites during nmethod unloading

Erik Österlund erik.osterlund at oracle.com
Fri Oct 26 06:18:23 UTC 2018


Hi Coleen,

Thanks for the review. And yeah, this could have turned out a lot worse.

/Erik

On 2018-10-25 22:53, coleen.phillimore at oracle.com wrote:
> 
> This doesn't look bad to me.  It's pretty specific for unloading so the 
> NO_KEEP_ALIVE makes sense here even though we're loading dead oops 
> through dead oops.
> 
> Thanks,
> Coleen
> 
> On 10/25/18 3:29 PM, Erik Österlund wrote:
>> Hi,
>>
>> When nmethods are unloaded, they may have dead 
>> java.lang.invoke.CallSites loaded, and then we follow their dead 
>> java.lang.invoke.MethodHandleNatives.CallSiteContext, so that its 
>> dependency context can be cleaned. These dead oops should be loaded 
>> with AS_NO_KEEPALIVE accessors, otherwise GC barriers can become very 
>> unhappy.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~eosterlund/8212996/webrev.00/
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8212996
>>
>> Thanks,
>> /Erik
> 


More information about the hotspot-dev mailing list