RFR(S): 8194741: Refactor oops in constant pool from CDS to use the Access API

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Wed Jan 10 14:49:55 UTC 2018


This looks fine.  I don't see why you couldn't use IN_CONCURRENT_ROOT 
for them, like the others though.  I like where the barrier ended up though.

thanks,
Coleen

On 1/10/18 9:29 AM, Erik Österlund wrote:
> Hi,
>
> The constant pool may install resolved_references from CDS archives. 
> This installation might happen during concurrent marking. Therefore, a 
> new previously known graph is mounted onto the existing Java heap 
> object graph. Naturally, this makes SATB invariants confused and 
> therefore requires explicit enqueuing.
>
> This patch hooks this into the Access API. While there are different 
> ways that this could be annotated, I chose to introduce a new 
> decorator called IN_ARCHIVE_ROOT, which similar to IN_CONCURRENT_ROOT 
> denotes a kind of special root that needs to be handled differently. 
> In the G1 case, it results in a SATB enqueue when it is loaded. This 
> approach made me scratch my head less than various other ideas I had.
>
> Webrev:
> http://cr.openjdk.java.net/~eosterlund/8194741/webrev.00/
>
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8194741
>
> /Erik



More information about the hotspot-runtime-dev mailing list