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