RFR: 8199739: Use HeapAccess when loading oops from static fields in javaClasses.cpp (original) (raw)
Kim Barrett kim.barrett at oracle.com
Sat Mar 17 04:11:42 UTC 2018
- Previous message: RFR: 8199739: Use HeapAccess when loading oops from static fields in javaClasses.cpp
- Next message: RFR: 8199739: Use HeapAccess when loading oops from static fields in javaClasses.cpp
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mar 16, 2018, at 10:39 AM, Stefan Karlsson <stefan.karlsson at oracle.com> 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
src/hotspot/share/classfile/javaClasses.cpp.
1870 address addr = ik->static_field_addr(static_unassigned_stacktrace_offset); 1871 return HeapAccess<>::oop_load((HeapWord*)addr);
I'm not sure this is sufficient. Isn't static_field_addr just fundamentally broken for Shenandoah?
Currently: *(mirror + offset)
Proposed change: HeapAccess<>::oop_load(mirror + offset)
but I think such an access needs to be HeapAccess<>::load_at(mirror, offset)
(I have an email thread about this with me, Coleen, and ErikO from mid-December. I don't have anything in that thread from Erik though. I think we discussed it on slack, but that's been deleted.)
- Previous message: RFR: 8199739: Use HeapAccess when loading oops from static fields in javaClasses.cpp
- Next message: RFR: 8199739: Use HeapAccess when loading oops from static fields in javaClasses.cpp
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]