RFR (M): 8159984: Remove call to ClassLoaderDataGraph::clear_claimed_marks during the initial mark pause

Thomas Schatzl thomas.schatzl at oracle.com
Wed Sep 18 15:22:37 UTC 2019

Hi all,

   can I have reviews for this change that, given the observation that 
during root processing, there is only one kind of root that walks CLDs, 
we do not need to

a) claim CLDs during iteration, obsoleting the need to clear the CLD claims
a) wait for "strong" CLD iteration before we can continue with 
evacuating the heap

any more (during the concurrent start pause).

We *still* need to wait for "strong" iteration of oops from nmethods as 
later during the evacuation phase we use the per-region nmethod 
remembered sets. We need to make sure that all "strong" nmethod 
iteration is finished at that time.

There is the possibility to change the "strong" nmethod iteration to 
mark their oops outside the iteration claim, then the wait barrier is 
unnecessary. This is a separate issue though.

Thanks go to StefanK for explaining me the root processing issue over 
and over again until I finally got it.

This change obsoletes JDK-8163213 and JDK-8231073.


(based on JDK-8231117)


More information about the hotspot-gc-dev mailing list