RFR: 8210233: Prepare Klass::is_loader_alive() for concurrent class unloading

Erik Österlund erik.osterlund at oracle.com
Mon Sep 3 14:50:19 UTC 2018


Hi Coleen,

On 2018-08-30 22:03, coleen.phillimore at oracle.com wrote:
>
>
> On 8/30/18 2:56 PM, Erik Österlund wrote:
>> Hi,
>>
>> The Klass::is_loader_alive() facility currently assumes that CLDs are 
>> set to unloading before giving a correct answer. This is a problem 
>> for concurrent class unloading. This needs to instead be evaluated in 
>> a more concurrency friendly fashion, so that it will give the right 
>> answer even in concurrent contexts.
>>
>> The proposed solution is to stop using the cached unloading value, 
>> and instead ask the CLD if it is_alive(), which utilizes a phantom 
>> load on the CLD holder, and is concurrency friendly.
>
> So you verified that there's no performance difference with this? 

Yes.

> It looks good and just in time because I'm calling this function in 
> the patch I'm working on.  A lot.

Thanks for the review.

/Erik

> thanks,
> Coleen
>>
>> Webrev:
>> http://cr.openjdk.java.net/~eosterlund/8210233/webrev.00/
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8210233
>>
>> Thanks,
>> /Erik
>



More information about the hotspot-runtime-dev mailing list