RFR: 8220343: Move scavenge_root_nmethods from shared code

Stefan Karlsson stefan.karlsson at oracle.com
Mon Mar 11 21:59:37 UTC 2019

Hi Vladimir,

On 2019-03-11 17:55, Vladimir Kozlov wrote:
> Looks good to me. Please, test with Graal (at least tier3).

Thanks for reviewing.

Testing of this showed that I inadvertently removed the following line:

Rerunning test right now, including Graal testing.


> Thanks,
> Vladimir
> On 3/11/19 7:23 AM, Stefan Karlsson wrote:
>> Hi all,
>> Please review this patch to move the scavenge root code out from 
>> CodeCache and nmethod.
>> http://cr.openjdk.java.net/~stefank/8220343/webrev.01/
>> https://bugs.openjdk.java.net/browse/JDK-8220343
>> 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
>>   https://bugs.openjdk.java.net/browse/JDK-8220411
>> and also depends on the the resolution of:
>>   JDK-8220342: Remove scavenge_root_nmethods_do from 
>> VM_HeapWalkOperation::collect_simple_roots
>>   https://bugs.openjdk.java.net/browse/JDK-8220342
>> Thanks,
>> StefanK

More information about the hotspot-compiler-dev mailing list