RFR: 8218734: SA: Incorrect and raw loads of OopHandles
Stefan Karlsson
stefan.karlsson at oracle.com
Wed Feb 13 15:40:57 UTC 2019
On 2019-02-13 14:40, coleen.phillimore at oracle.com wrote:
>
>
> On 2/11/19 3:39 AM, Stefan Karlsson wrote:
>> Hi all,
>>
>> Please review this patch to fix the resolving of oops inside the (VM)
>> OopHandles.
>>
>> https://cr.openjdk.java.net/~stefank/8218734/webrev.01/
>> https://bugs.openjdk.java.net/browse/JDK-8218734
>>
>> Before this patch the OopHandle::_obj was assumed to be located at
>> offset 0, and the SA resolved OopHandle (Klass::_java_mirror and
>> ClassLoaderData::_class_loader) without the required load barrier for
>> ZGC. I've added a new class VMOopHandle (The SA already has a
>> OopHandle), which handles the resolving (load or load + barrier).
>
> This looks good but unfortunate that the SA has a different OopHandle.
> Maybe it would be more accurate to call it AccessOopHandle to imply that
> it has to use barriers?
Maybe. I'm not sure I like the name AccessOopHandle any better, but if
you feel strongly about this I'll change it.
>>
>> The OopHandle type is grouped under the Oops section in vmStructs.cpp.
>> It's not an oop, so I added a newline to separate it out from the
>> rest. Any suggestion of a better location in that file?
>>
>
> Seems ok to me. The change looks fine. Thank you for fixing this.
Thanks for reviewing. I'll change getAddressField to getField as
suggested by Jini in another thread.
Thanks,
StefanK
>
> Thanks,
> Coleen
>> Tested with the jtreg tests in serviceability/sa + patches to make ZGC
>> usable with the SA's hprof dumping.
>>
>> Thanks,
>> StefanK
>
More information about the hotspot-dev
mailing list