RFR (M) 8210155: Lock ClassLoaderDataGraph

Harold David Seigel harold.seigel at oracle.com
Thu Aug 30 20:25:48 UTC 2018


That sounds good!

Thanks, Harold


On 8/30/2018 3:59 PM, coleen.phillimore at oracle.com wrote:
>
>
> On 8/30/18 1:13 PM, Harold David Seigel wrote:
>> Hi Coleen,
>>
>> This looks good.  Just a couple of small questions.
>>
>> In classLoaderData.cpp, can you get rid of line 1096 and change 1097 
>> to cld->set_next(_head);  ?
>>
>>    1096   ClassLoaderData* next = _head;
>>    1097   cld->set_next(next);
>>    1098   _head = cld;
>
> Yes, fixed that.
>>
>> In some places, it's unclear when a ClassLoaderDatagraph_lock is 
>> needed.  For example, why does CLDG::methods_do() need the lock but 
>> CLDG::classes_do() doesn't ?  Can you add a few comments?
>
> I wanted to take out the lock in the CLDG::blah_do functions directly 
> but they are called in various contexts, including during safepoint, 
> so the caller needs to take the lock if it is outside a safepoint.
>
> CLDG::methods_do was inconsistent though.  I moved the lock into its 
> one caller.   I added the comment:
>
> // These functions assume that the caller has locked the 
> ClassLoaderDataGraph_lock
> // if they are not calling the function from a safepoint.
>
>>
>> In CMSCollector::preclean_cld(), do you need to hold the lock for the 
>> whole function or just until cld_do() is done?  Same question for 
>> compute() in klassVtable.cpp.
>
> For the CMS function, the lock has to be held outside the 
> CMSTokenSyncWithLocks because of rankings, so I can't change that. 
> klassVtable.cpp compute does little after taking the lock, so it 
> doesn't seem worth putting it into a scope by itself.
>
> Thank for reviewing!
> Coleen
>>
>> Thanks! Harold
>>
>> On 8/29/2018 12:07 PM, coleen.phillimore at oracle.com wrote:
>>> Summary: In preparation for concurrent class unloading.
>>>
>>> open webrev at http://cr.openjdk.java.net/~coleenp/8210155.01/webrev
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8210155
>>>
>>> Tested with mach5 hs-tier1-7, which tests JFR and JVMTI changes. 
>>> Also tested with performance dev-submit testing with no regression.
>>>
>>> Thanks,
>>> Coleen
>>
>



More information about the hotspot-dev mailing list