JDK-8220031 : [JVMCI] simplify management of JVMCI nmethod mirror
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 13
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2019-03-03
  • Updated: 2019-05-01
  • Resolved: 2019-05-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 13
13Resolved
Related Reports
Blocks :  
Duplicate :  
Description
There is logic in nmethod for managing the connection with a mirror object of type HotSpotNmethod. This is similar to the connection from a Klass to an java.lang.Class object (in the Klass::_java_mirror field). The nmethod mirror exists so that nmethods can be directly called via a Java API.

For historic reasons, the reference to the nmethod mirror has been in a dedicated C++ field. Also, the nmethod mirror has had special handling in terms of impacting the unloadability of an nmethod. Due to changes made in the context of libgraal, it has become clear that this special logic is no longer needed and the nmethod mirror reference should just be an entry in the nmethod's oops table (i.e. at nmethod::oops_begin().

While making these simplifications, the JVMCI specific data for an nmethod can become an inline object in an nmethod, simplifying cleanup of an unloaded nmethod further.
Comments
Fix was pushed with JDK-8220623.
01-05-2019

https://github.com/graalvm/graal-jvmci-8/commit/991f0d54c6ba9875c60360068ab03b519b02df0b https://github.com/graalvm/graal-jvmci-8/commit/15c5be20b2f4ed40adf40e68cc1d5c9dc5a1bef6
04-03-2019