Duplicate :
|
The CodeCache::scavenge_root_nmethods_do function and all its implementations 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.