RFR: 8199739: Use HeapAccess when loading oops from static fields in javaClasses.cpp
Stefan Karlsson
stefan.karlsson at oracle.com
Mon Mar 19 12:59:01 UTC 2018
Hi again,
Seems like Coleen wanted me to solve this problem slightly differently.
She suggested that I add an Access<>::resolve barrier in static_field_addr:
http://cr.openjdk.java.net/~stefank/8199739/webrev.03/
This will probably solve the primitive access for Shenandoah. What do
you think?
Thanks,
StefanK
On 2018-03-19 12:29, Stefan Karlsson wrote:
> Hi Roman,
>
> On 2018-03-19 11:17, Roman Kennke wrote:
>> Hi Stefan,
>>
>> thank you!
>>
>> grepping for static_field_addr() yields some more places that'd need
>> similar treatment:
>>
>> jlong java_lang_ref_SoftReference::clock()
>> void java_lang_ref_SoftReference::set_clock(jlong value)
>>
>> Maybe cover them as well? Or I'll file a separate issue. Your call.
>
> This seems like primitive accesses, I'll be happy to leave those to you. ;)
>
> Thanks,
> StefanK
>
>>
>> Thanks, Roman
>>
>>
>>> Hi all,
>>>
>>> Kim and Roman commented that my patch doesn't work with Shenandoah.
>>> Here's an updated version:
>>> http://cr.openjdk.java.net/~stefank/8199739/webrev.02/
>>>
>>> Thanks,
>>> StefanK
>>>
>>> On 2018-03-16 15:39, Stefan Karlsson wrote:
>>>> Hi all,
>>>>
>>>> Please review this patch to use HeapAccess<>::oop_load instead of
>>>> oopDesc::load_decode_heap_oop when loading oops from static fields in
>>>> javaClasses.cpp:
>>>>
>>>> http://cr.openjdk.java.net/~stefank/8199739/webrev.01/
>>>> https://bugs.openjdk.java.net/browse/JDK-8199739
>>>>
>>>> It's necessary to use HeapAccess<>::oop_load to inject load barriers
>>>> for GCs that need them.
>>>>
>>>> Thanks,
>>>> StefanK
>>
>>
More information about the hotspot-dev
mailing list