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