RFR: 8210321: Create NO_KEEPALIVE CLD holder accessor

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Wed Sep 5 20:24:14 UTC 2018


Me again, can you use this function in the assert here:

inline oop ClassLoaderData::class_loader() const {
   assert(!_unloading, "This oop is not available to unloading class 
loader data");
   assert(_holder.is_null() || _holder.peek() != NULL , "This class 
loader data holder must be alive");
   return _class_loader.resolve();
}

Thanks,
Coleen

On 9/5/18 9:27 AM, coleen.phillimore at oracle.com wrote:
>
>
> 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