RFR (S): 8191894: Refactor weak references in JvmtiTagHashmap to use the Access API

Erik Österlund erik.osterlund at oracle.com
Tue Nov 28 12:35:57 UTC 2017


Hi Coleen,

On 2017-11-27 19:21, coleen.phillimore at oracle.com wrote:
> http://cr.openjdk.java.net/~eosterlund/8191894/webrev.00/src/hotspot/share/prims/jvmtiTagMap.cpp.udiff.html 
>
>
> + return RootAccess<ON_PHANTOM_OOP_REF | 
> AS_NO_KEEPALIVE>::oop_load(object_addr());
>
>
> Why is this not access ON_ROOT{_CONCURRENT} ?  The thing holding the 
> object that you are peeking at is not in the Java Heap?

The reason is that all GC root processing of these roots (off-heap oop*) 
are performed completely in a safepoints as opposed to concurrently.

Thanks,
/Erik

>
> thanks,
> Coleen
>
> On 11/27/17 6:28 AM, Erik Österlund wrote:
>> Hi,
>>
>> The JVMTI tag hashmap has weak oop references that are handled using 
>> raw oop accesses and a G1-specific SATB enqueue call when leaking out 
>> objects from the tag map, requiring them to be marked as live by G1.
>>
>> This should now be refactored to use the Access API to annotate that 
>> these are ON_PHANTOM_OOP_REF, and refactor the raw oop loads to use 
>> ON_PHANTOM_OOP_REF | AS_NO_KEEPALIVE.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~eosterlund/8191894/webrev.00/
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8191894
>>
>> Thanks,
>> /Erik
>



More information about the hotspot-runtime-dev mailing list