RFR: 8199739: Use HeapAccess when loading oops from static fields in javaClasses.cpp (original) (raw)

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 staticfieldaddr() yields some more places that'd need similar treatment: jlong javalangrefSoftReference::clock() void javalangrefSoftReference::setclock(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<>::oopload instead of oopDesc::loaddecodeheapoop 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<>::oopload to inject load barriers for GCs that need them. Thanks, StefanK



More information about the hotspot-dev mailing list