RFR (S) 8164207: Checking missing load-acquire in relation to _pd_set in dictionary.cpp

Christian Thalinger cthalinger at twitter.com
Thu Aug 24 21:00:39 UTC 2017


> On Aug 24, 2017, at 10:54 AM, coleen.phillimore at oracle.com wrote:
> 
> 
> 
> On 8/24/17 4:07 PM, Zhengyu Gu wrote:
>> Hi Coleen,
>> 
>> There are two instances probably overlooked?
>> 
>> dictionary.cpp #103 and #124
>> 
>>    for (ProtectionDomainEntry* current = _pd_set;
>> =>
>>    for (ProtectionDomainEntry* current = pd_set();
>> 
>> 
> 
> Oh yeah, you're right.  That's embarrasing.   I'll fix and retest.

Which also shows that there is a potential for future mistakes.  Can we isolate the field better so it’s only accessible via setter and getter?

> 
> Thank you!!
> Coleen
> 
>> Thanks,
>> 
>> -Zhengyu
>> 
>> On 08/24/2017 02:28 PM, coleen.phillimore at oracle.com wrote:
>>> Summary: Use load_acquire for accessing DictionaryEntry::_pd_set since it's accessed outside the SystemDictionary_lock
>>> 
>>> Ran parallel class loading tests that we have as well as tier1 tests. See bug for details.
>>> 
>>> open webrev at http://cr.openjdk.java.net/~coleenp/8164207.01/webrev
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8164207
>>> 
>>> Thanks,
>>> Coleen
>>> 
> 



More information about the hotspot-runtime-dev mailing list