[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    RFR (S): 8187289 NotifyFramePop request is not cleared if JVMTI_EVENT_FRAME_POP is disabled
From:       "serguei.spitsyn () oracle ! com" <serguei ! spitsyn () oracle ! com>
Date:       2017-10-13 4:58:04
Message-ID: a36a2ed4-d7b2-4fdd-052e-35c5c3275738 () oracle ! com
[Download RAW message or body]

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <font face="Monaco">Please, review a fix for:<br>
         <a class="moz-txt-link-freetext" \
href="https://bugs.openjdk.java.net/browse/JDK-8187289">https://bugs.openjdk.java.net/browse/JDK-8187289</a><br>
  <br>
      Webrev:<br>
        
<a class="moz-txt-link-freetext" \
href="http://cr.openjdk.java.net/~sspitsyn/webrevs/2017/hotspot/8187289-jvmti-framepop \
.1/">http://cr.openjdk.java.net/~sspitsyn/webrevs/2017/hotspot/8187289-jvmti-framepop.1/</a><br>
  <br>
      <br>
      Summary:<br>
         The issue is that the FRAME_POP event request is not cleaned if
      the </font><font face="Monaco"><font face="Monaco">requested<br>
           method frame is popped but </font>the notification mode is
      temporarily disabled.<br>
         If later the notification mode is enabled again then it will
      post a FRAME_POP<br>
         </font><font face="Monaco"><font face="Monaco">event on the
        first return from an arbitrary method with the same frame depth.<br>
           N</font></font><font face="Monaco"><font face="Monaco"><font
          face="Monaco"><font face="Monaco">otification mode for
            JVMTI_EVENT_FRAME_POP events is checked in the<br>
               </font></font></font></font>JvmtiExport::post_method_exit<font
      face="Monaco"><font face="Monaco">() under the condition:</font></font><span
      class="changed"><br>
                 if (state-&gt;is_enabled(JVMTI_EVENT_FRAME_POP)) {</span><font
      face="Monaco"><font face="Monaco"><br>
           Just removing this condition would likely to introduce a
        performance regression<br>
           in interpreted mode. To mitigate it the fix introduces n</font>ew
      JVMTI_SUPPORT_FLAG<br>
         can_generate_frame_pop_events that is is checked instead of the
      notification mode.<br>
         Also, it is necessary to to keep the \
</font>state-&gt;is_interp_only_mode()<font  face="Monaco"> turned on<br>
         while the JvmtiEnvThreadState has any FRAME_POP requests
      registered.<br>
      <br>
         One alternate approach to this fix is to leave the current
      behavior as it is<br>
         but update the JVMTI spec with some clarification about this
      behavior.   <br>
      <br>
      Testing:<br>
         Verified with new unit test </font><font face="Monaco"><font
        face="Monaco">serviceability/jvmti/NotifyFramePop.</font></font><font
      face="Monaco"><font face="Monaco"><font face="Monaco"><font
            face="Monaco"><br>
          </font></font></font>   Also ran the nsk.jvmti, nsk.jdi and
      jtreg jdk_jdi tests to make sure there is no regression.<br>
      <br>
      Thanks,<br>
      Serguei<br>
    </font>
  </body>
</html>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic