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

Erik Österlund erik.osterlund at oracle.com
Tue Feb 26 08:10:11 UTC 2019


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.




More information about the hotspot-compiler-dev mailing list