RFR: 8218734: SA: Incorrect and raw loads of OopHandles

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Wed Feb 13 13:40:34 UTC 2019



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?
>
> 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,
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