RFR (XS) 8010723 - possible deadlock with SystemDictionary_lock

Karen Kinnear karen.kinnear at oracle.com
Mon Apr 1 05:20:10 PDT 2013


Ioi,

Looks good. Thank you for the updated comments.
line 839 "need" -> "needs"

And yes, for non-boot loaders, you can load the same class in parallel -
this was added to prevent deadlocks with the class loader lock - and it
allows parallelCapable loaders to load faster.

thanks,
Karen

On Mar 29, 2013, at 3:26 PM, Ioi Lam wrote:

> Coleen,
> 
> I have updated the webrev to incorporate your comments:
> 
> http://cr.openjdk.java.net/~iklam/8010723/sysdic_lock_002/
> 
> Thanks
> - Ioi
> 
> On 03/29/2013 10:38 AM, Coleen Phillimore wrote:
>>> // This must be done outside of the SystemDictionary_lock to
>>>    // avoid deadlock.
>>>    //
>>>    // Note that Klass::restore_unshareable_info (called via
>>>    // load_instance_class above) is also called outside
>>>    // of SystemDictionary_lock. All other threads that are
>>>    // trying to load this class in the boot classloader
>>>    // are already blocked above at
>>>    // if (class_loader.is_null()) {SystemDictionary_lock->wait();}
>> How about
>> 
>>      // Other threads are blocked from loading this class because they are
>>      // are waiting on the SystemDictionary_lock until this thread removes
>>      // the placeholder below.
>> 
>> thanks,
>> Coleen
>>>    //
>>>    // This need to be re-thought when parallel-capable non-boot
>>>    // classloaders are supported by CDS (today they're not).
> 



More information about the hotspot-runtime-dev mailing list