In JDK-7145569 per region remembered sets for code cache roots were introduced.
The data structure for this was a simple GrowableArray. Measurements for JDK-8027295 have shown that reclaiming them is a serious performance bottleneck.
Also JDK-8025813 G1: Code root marking unbalanced requires a better data structure that is more amenable to parallelize.
The idea is to change the GrowableArray into a list of chunks containing the nmethod references.