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