RFR: 8338745: Intrinsify Continuation.pin() and Continuation.unpin()

Tobias Hartmann thartmann at openjdk.org
Thu Aug 22 09:15:04 UTC 2024


On Thu, 22 Aug 2024 07:14:29 GMT, Dean Long <dlong at openjdk.org> wrote:

>> src/hotspot/share/opto/library_call.cpp line 3787:
>> 
>>> 3785:     set_all_memory(input_memory_state);
>>> 3786:     uncommon_trap_exact(Deoptimization::Reason_intrinsic,
>>> 3787:                         Deoptimization::Action_reinterpret);
>> 
>> Why do you use `Action_reinterpret` and not `Action_make_not_entrant` here?
>> 
>> You may need a check to avoid endless re-compilation of a method that always hits the trap:
>> 
>>   if (too_many_traps(Deoptimization::Reason_intrinsic)) {
>>     return false;
>>   }
>> 
>> 
>> See other intrinsics.
>
> A pin_count overflow/underflow should be a per-thread condition, not global.  If there is nothing in the nmethod to be invalidated, maybe this should be `Action_none`?

Right, that would make sense to me because `Deoptimization::Action_reinterpret` might also invalidate the nmethod.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20664#discussion_r1726664123


More information about the hotspot-compiler-dev mailing list