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

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Fri Aug 25 13:26:31 UTC 2017


Thank you Zhengyu for noticing this change was wrong, and Christian for 
the idea.   New webrev:

open webrev at http://cr.openjdk.java.net/~coleenp/8164207.02/webrev
bug link https://bugs.openjdk.java.net/browse/JDK-8164207

I reran parallel class loading tests and jck testing is in progress, but 
order access requires inspection.

Thanks,
Coleen


On 8/24/17 5:11 PM, coleen.phillimore at oracle.com wrote:
>
>
> On 8/24/17 5:00 PM, Christian Thalinger wrote:
>>> 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?
>
> Yes, great idea.
> Coleen
>
>>> 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