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

Erik Österlund erik.osterlund at oracle.com
Wed Jan 10 14:29:04 UTC 2018


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-gc-dev mailing list