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