RFR: 8234654: ZGC: Only disarm NMethods when marking/relocating code roots

Per Liden per.liden at oracle.com
Mon Dec 9 09:17:10 UTC 2019


Here's an updated webrev, which removes the "assert(is_armed, ...)" 
BarrierSetNMethod::disarm(), as it's a bit too strict. Also, added the 
"if (ZNMethod::is_armed(nm))" to the ZNMethodUnlinkClosure, so avoid 
walking to oops if it's already disarmed.

http://cr.openjdk.java.net/~pliden/8234654/webrev.1

/Per

On 11/22/19 3:38 PM, Per Liden wrote:
> Thanks Erik!
> 
> /Per
> 
> On 11/22/19 3:35 PM, erik.osterlund at oracle.com wrote:
>> Hi Per,
>>
>> Looks good.
>>
>> Thanks,
>> /Erik
>>
>> On 11/22/19 3:03 PM, Per Liden wrote:
>>> ZRootIterator will currently always try to disarm on-stack NMethods. 
>>> Strictly speaking, we should only do this when marking/relocating 
>>> code roots, not when e.g. iterating the heap.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8234654
>>> Webrev: http://cr.openjdk.java.net/~pliden/8234654/webrev.0
>>>
>>> /Per
>>



More information about the hotspot-gc-dev mailing list