RFR: 8220343: Move scavenge_root_nmethods from shared code

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Mar 13 17:10:14 UTC 2019


New webrev link
http://cr.openjdk.java.net/~stefank/8220343/webrev.03

Thank you for testing, Stefan. Compiler changes looks fine to me.

Thanks,
Vladimir

On 3/13/19 1:31 AM, Stefan Karlsson wrote:
> Updates to the patch:
>   http://cr.openjdk.java.net/~stefank/8220343/webrev.03.delta/
>   http://cr.openjdk.java.net/~stefank/8220343/webrev.03.delta/
> 
> - Removes anonymous namespace, which causes link problems on Windows.
> - Fixed test that looks for _scavenge_root_nmethods
> 
> Tested with tier1-3
> 
> Thanks,
> StefanK
> 
> On 2019-03-11 15:23, 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-gc-dev mailing list