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

Doug Simon dnsimon at openjdk.org
Thu May 29 13:04:41 UTC 2025


On Wed, 28 May 2025 17:15:48 GMT, Erik Österlund <eosterlund 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.

Is the use of `JVMCINMethodHandle` equivalent to `nm` being on-stack?

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

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


More information about the graal-dev mailing list