RFR(M/L): 7145569: G1: optimize nmethods scanning

Igor Veresov iggy.veresov at gmail.com
Sun Jun 16 20:30:41 UTC 2013


On Jun 14, 2013, at 5:27 AM, Mikael Gerdin <mikael.gerdin at oracle.com> wrote:

> 
> Just to make sure I understand this change, for the G1 class unloading work I don't want the nmethods to act as strong roots. So I guess I'll need to remove the call to mark_strong_code_roots.
> In the class unloading case only nmethods on the execution stack should be treated as strong roots and they are taken care of by Threads::possibly_parallel_oops_do (from process_strong_roots).
> 

I think references to the _objects_ from nmethod must be strong, otherwise these objects will be only weakly referenced most of the time and will be collected (since they are usually only referenced by that particular nmethod) and you'll be forced to kill nmethod pretty much every collection to stay consistent. References to _classes_ on the other hand should be weak, I think.. Right?

igor





More information about the hotspot-gc-dev mailing list