RFR: 8219708: Stop flushing OSR nmethods earlier in the sweeper

Nils Eliasson nils.eliasson at oracle.com
Tue Feb 26 09:17:13 UTC 2019

Hi Erik,

Looks great!

// Nils

On 2019-02-26 09:10, Erik Österlund wrote:
> Hi,
> The sweeper has an optimization that makes the lifecycle of nmethods 
> more complicated than it needs to be.
> It recognizes that no inline caches point at OSR nmethods, and uses 
> that knowledge to reclaim OSR nmethods more aggressively than normal 
> nmethods. It assumes that it is okay to flush unloded nmethods, and 
> nmethods we just made zombie immediately. But if the nmethod is 
> locked, it needs to wait anyway.
> There have been multiple bugs due to this special life cycle of OSR 
> nmethods, and it is simply not worth it. It also blocks concurrent 
> ICStub reclamation, which requires the more robust life cycle.
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8219708
> Webrev:
> http://cr.openjdk.java.net/~eosterlund/8219708/webrev.00/
> Thanks,
> /Erik

More information about the hotspot-compiler-dev mailing list