RFR: 8210321: Create NO_KEEPALIVE CLD holder accessor

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Wed Sep 5 13:27:43 UTC 2018



On 9/4/18 8:38 AM, Erik Österlund wrote:
> Hi Coleen,
>
> I specifically need this one for reading the holder without marking 
> it, so that my GC code can subsequently mark it with either 
> finalizable or strong marking, depending on whether we are marking the 
> subgraph reachable from finalizers, or from strong roots concurrently. 
> The klass_holder() accessor applies strong load barriers (as it is not 
> AS_NO_KEEPALIVE).

Yes, I see why.  I meant that the function is_alive() can now be written 
calling this holder_no_keep_alive() function, so we don't have two 
places for the "peek" call.  But I retract that because we'd be checking 
for null holder twice.

We still need the keep_alive bit for some subtle reason (module loading 
during bootstrap, I believe).

thanks,
Coleen

>
> Thanks,
> /Erik
>
> On 2018-09-04 14:29, coleen.phillimore at oracle.com wrote:
>>
>>
>> On 9/4/18 8:02 AM, coleen.phillimore at oracle.com wrote:
>>>
>>> I thought the ClassLoaderData::is_alive() function would do this for 
>>> you?
>>
>> Or can you call this new function from is_alive()?
>> thanks
>> Coleen
>>
>>> thanks,
>>> Coleen
>>>
>>> On 9/3/18 10:38 AM, Erik Österlund wrote:
>>>> Hi,
>>>>
>>>> In order to perform concurrent class unloading, ZGC needs a way to 
>>>> peek the holder without keeping it alive.
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~eosterlund/8210321/webrev.00/
>>>>
>>>> Bug:
>>>> https://bugs.openjdk.java.net/browse/JDK-8210321
>>>>
>>>> Thanks,
>>>> /Erik
>>>
>>
>



More information about the hotspot-runtime-dev mailing list