RFR: 8220343: Move scavenge_root_nmethods from shared code

Stefan Karlsson stefan.karlsson at oracle.com
Mon Mar 11 14:23:53 UTC 2019

Hi all,

Please review this patch to move the scavenge root code out from 
CodeCache and nmethod.


The CodeCache::scavenge_root_nmethods_do function and its implementation 
in CodeCache and nmethod, is only used by set of our GCs (Serial, 
Parallel, and CMS), but not by G1, ZGC, Shenandoah, or Epsilon. I want 
to move all of that into GC subsystem and then only let those GCs using 
it pay the cost of having that code.

This is a continuation of the work of the GC Interface, where G1, ZGC, 
Shenandoah, and Epsilon, uses the register_nmethod, unregister_nmethod, 
and flush_nmethod calls, but the other GCs don't.

This patch builds upon:
  JDK-8220411: Remove ScavengeRootsInCode=0 code

and also depends on the the resolution of:
  JDK-8220342: Remove scavenge_root_nmethods_do from 


More information about the hotspot-gc-dev mailing list