RFR 8209624: [JVMCI] Invalidate nmethods instead of directly unloading them when the InstalledCode is dropped

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Aug 17 19:24:55 UTC 2018


Tom, you have tests failed.

Vladimir

On 8/17/18 11:52 AM, Tom Rodriguez wrote:
> http://cr.openjdk.java.net/~never/8209624/webrev
> https://bugs.openjdk.java.net/browse/JDK-8209624
> 
> When the lifetime of an InstalledCode instance is used to control the lifetime of the corresponding nmethod it's 
> possible for the nmethod still have live activations when the nmethod is unloaded.  This is because the weak semantics 
> of the installed_code means it isn't visited in the nmethod::oops_do phase.  We would have to sometimes maintain a 
> second strong reference which was visited in nmethod::oops_do to make that work.  Instead simply invalidate the nmethod 
> and let the sweeper unload the nmethod once it no longer has activations.  Note that this issue doesn't affect normal 
> compiles requested the CompilerBroker since the InstalledCode reference is weak in that case.  The fix was tested with a 
> Truffle program that originally exposed the issue.  mach5 runs are in progress.
> 
> tom


More information about the hotspot-compiler-dev mailing list