RFR: 8357619: [JVMCI] Revisit phantom_ref parameter in JVMCINMethodData::get_nmethod_mirror

Erik Österlund eosterlund at openjdk.org
Thu May 29 13:04:41 UTC 2025


On Wed, 28 May 2025 10:28:38 GMT, Doug Simon <dnsimon at openjdk.org> wrote:

> The point of the `phantom_ref` parameter (introduced by [JDK-8234359](https://bugs.openjdk.org/browse/JDK-8234359)) of `JVMCINMethodData::get_nmethod_mirror` is to avoid the special resurrection semantics of a phantom read when reading the field during GC, which is when `JVMCINMethodData::invalidate_nmethod_mirror` can be called.
> This case can be handled directly in `JVMCINMethodData::invalidate_nmethod_mirror` and so the `phantom_ref` parameter can be removed.

src/hotspot/share/jvmci/jvmciCompilerToVM.cpp line 2834:

> 2832:           // Only the mirror in the HotSpot heap is accessible
> 2833:           // through JVMCINMethodData
> 2834:           oop nmethod_mirror = data->get_nmethod_mirror(nm);

Is the nmethod guaranteed to be on-stack here? If not it gotta be phantom.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/25488#discussion_r2112390139


More information about the graal-dev mailing list