[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->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->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