RFR: 8220343: Move scavenge_root_nmethods from shared code
Stefan Karlsson
stefan.karlsson at oracle.com
Thu Mar 14 12:35:44 UTC 2019
Thanks, Erik.
StefanK
On 2019-03-14 13:34, Erik Österlund wrote:
> Hi Stefan,
>
> Looks good.
>
> /Erik
>
> On 2019-03-14 11:36, Stefan Karlsson wrote:
>> New webrevs:
>> http://cr.openjdk.java.net/~stefank/8220343/webrev.04.delta
>> http://cr.openjdk.java.net/~stefank/8220343/webrev.04
>>
>> The call to prune the scavengable nmethods were inadvertently moved to
>> the old location of CodeCache::gc_prolog call, but should have been
>> moved to the old location of the CodeCache::gc_epilogue call. This
>> does not affect the functionality, but delays the pruning until next
>> full or young GC.
>>
>> 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