RFR (S): 8191888: Refactor ClassLoaderData::remove_handle to use the Access API

David Holmes david.holmes at oracle.com
Tue Nov 28 06:59:15 UTC 2017

Hi Erik,

Is there a non-GC person's guide to what the different forms of 
RootAccess<XXX> mean and when to use them? Or do we expect a GC person 
to always jump in to show where such things are needed? ;-)


On 27/11/2017 7:06 PM, Erik Österlund wrote:
> Hi,
> The ClassLoaderData::remove_handle() member function currently uses 
> explicit G1 SATB barriers to remove an oop from the root set, as these 
> handles are not necessarily walked by the GC in a safepoint. Therefore 
> G1 needs pre-write barriers.
> This should now be modeled as a 
> RootAccess<IN_CONCURRENT_ROOT>::oop_store instead. This maps to 
> performing a pre-write SATB barrier with G1, but other GCs are free to 
> do other things as necessary.
> Webrev:
> http://cr.openjdk.java.net/~eosterlund/8191888/webrev.00/
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8191888
> Thanks,
> /Erik

More information about the hotspot-gc-dev mailing list