RFR: 8220606: Move ScavengeNMethods unlinking to unregister_nmethod
Per Liden
per.liden at oracle.com
Thu Mar 14 09:28:33 UTC 2019
On 3/14/19 10:13 AM, Stefan Karlsson wrote:
> Hi Per,
>
> On 2019-03-14 09:59, Per Liden wrote:
>> Looks good,
>
> Thanks.
>
> but it looks like we could remove
>> ScavengableNMethods::flush_nmethod() completely now. Don't need a new
>> webrev if you decide to do that.
>
> As discussed offline.
>
> My intention with the code was to view ScavengableNMethods as the
> implementation of the "virtual" interface needed to deal with nmethods
> from a GC's point-of-view. The GCs using ScavengableNMethods would
> simply delegate to this implementation, and not have to know if it
> needed to call flush (or any of the other functions) or not.
>
> Your proposal changes ScavengableNMethods from being _the_
> implementation of nmethod handling for GenCollectedHeap and
> ParallelScavengeHeap, and conceptually change it to be a utility class
> used by these GCs to implement their handling of nmethods.
>
> I prefer my interpretation of this, but I also see that we already
> decide to skip implementing verify_nmethods in ZCollectedHeap instead of
> delegating to ZNMethod. So, there's already a precedence in that code. :)
>
> Updated with your proposal:
> http://cr.openjdk.java.net/~stefank/8220606/webrev.02.delta
> http://cr.openjdk.java.net/~stefank/8220606/webrev.02
Thanks, looks good!
/Per
>
> StefanK
>
>
>>
>> /Per
>>
>> On 3/14/19 9:33 AM, Stefan Karlsson wrote:
>>> Hi all,
>>>
>>> Please review this patch to move the removal of non-alive nmethods
>>> from the scavengable nmethods list from the flush/purge phase into
>>> the unregister_nmethod call.
>>>
>>> This will prevent the GCs from scavenging dead nmethods.
>>>
>>> http://cr.openjdk.java.net/~stefank/8220606/webrev.01/
>>> https://bugs.openjdk.java.net/browse/JDK-8220606
>>>
>>> Tested with tier1-3.
>>>
>>> Thanks,
>>> StefanK
More information about the hotspot-gc-dev
mailing list