RFR: Remove is_owning_locks() call from freeze slow path

Patricio Chilano Mateo pchilanomate at openjdk.java.net
Wed Apr 20 17:14:51 UTC 2022


On Wed, 20 Apr 2022 12:47:02 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> The call to is_owning_locks() on each frame when we recurse on freeze can be removed. Instead we can check _held_monitor_count once at the beginning on freeze_internal().
>> 
>> Tested locally by running all tests in test/jdk/java/lang/Thread/virtual/ and jdk/jdk/internal/vm/Continuation/, and in mach5 tiers loom-tier1, loom-tier2 and loom-tier3.
>> 
>> Thanks,
>> Patricio
>
> src/hotspot/share/runtime/continuationFreezeThaw.cpp line 1112:
> 
>> 1110:     return freeze_pinned_native;
>> 1111:   }
>> 1112:   if (UNLIKELY(ContinuationHelper::CompiledFrame::is_owning_locks(_cont.thread(), &map, senderf))) {
> 
> Are there still other calls to is_owning_locks or can it be removed?

Yes, it's also called for CONT_isPinned0. It can be removed too now that I look at it.

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

PR: https://git.openjdk.java.net/loom/pull/155


More information about the loom-dev mailing list