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

Erik Österlund erik.osterlund at oracle.com
Tue Sep 4 12:36:38 UTC 2018


Hi Coleen,

Thank you for the review.

/Erik

On 2018-09-04 13:59, coleen.phillimore at oracle.com wrote:
>
> The updated comments look fine.  I briefly checked other uses of the 
> _is_unloading field and it seems like we still want is_unloading() for 
> cleaning up modules/packages and the dictionaries.
>
> This looks good.
>
> thanks,
> Coleen
>
> On 9/3/18 11:25 AM, Erik Österlund wrote:
>> Hi Kim,
>>
>> You are right. Thank you for catching that.
>>
>> Incremental:
>> http://cr.openjdk.java.net/~eosterlund/8210233/webrev.00_01/
>>
>> Full:
>> http://cr.openjdk.java.net/~eosterlund/8210233/webrev.01/
>>
>> Thank you for the review.
>>
>> /Erik
>>
>> On 2018-08-30 21:27, Kim Barrett wrote:
>>>> On Aug 30, 2018, at 2:56 PM, Erik Österlund 
>>>> <erik.osterlund at oracle.com> 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.
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~eosterlund/8210233/webrev.00/
>>>>
>>>> Bug:
>>>> https://bugs.openjdk.java.net/browse/JDK-8210233
>>>>
>>>> Thanks,
>>>> /Erik
>>> Nearby comments involving "unloading" should be updated.
>>>
>>
>



More information about the hotspot-runtime-dev mailing list