RFR: 8262443: GenerateOopMap::do_interpretation can spin for a long time.

Daniel D.Daugherty dcubed at openjdk.java.net
Mon Mar 1 21:08:50 UTC 2021


On Mon, 1 Mar 2021 02:39:41 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> With Safepoint/Handshake timeout enabled in rare cases this methods spins for a long time, blocking safepoints/handshakes, so timeout (with a long delay) is triggered.
>> 
>> In some cases we are in native while executing this method and in some in vm.
>> That's why there is an check for state in vm.
>> 
>> Tested with other changes in t-1-7 this specific case of timeout is no longer an issue.
>> This change-set passes T1 stand alone.
>
> src/hotspot/share/oops/generateOopMap.cpp line 918:
> 
>> 916:         ThreadBlockInVM tbivm(thread->as_Java_thread());
>> 917:       }
>> 918:     }
> 
> Can you add a comment as to why this is necessary please.

Perhaps something like this above L916:

  // Since this JavaThread has looped at least once and is _thread_in_vm,
  // we honor any pending blocking request.

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

PR: https://git.openjdk.java.net/jdk/pull/2742


More information about the hotspot-dev mailing list