RFR (M): 8019519: PPC64 (part 105): C interpreter: implement support for jvmti early return.
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Mon Jul 8 01:33:28 PDT 2013
Hi Goetz,
Thank you for the explanations.
A thumbs up from me.
Thanks,
Serguei
On 7/6/13 12:35 PM, Lindenmaier, Goetz wrote:
>
> Hi Serguei,
>
>
> >The above will reset the *msg* to the *return_from_method*
> >when it was already set to the *early_return* which is
> >inconsistent with the *popping_frame* case.
>
> That's because the frame manager tests for popping_frame.
>
> The early_return case is handled as a normal return, we faked the
>
> return result in the cppInterpreter code that's in this change.
>
> See also
>
> http://hg.openjdk.java.net/ppc-aix-port/jdk8/hotspot/file/874e94d3b21d/src/cpu/ppc/vm/cppInterpreter_ppc.cpp
>
> line 1922
>
>
> > jc.can_force_early_return = 1;
>
> We will enable the capabilities in a change later on.
>
> Best regards & thanks for your review,
>
> Goetz.
>
> *From:*serguei.spitsyn at oracle.com [mailto:serguei.spitsyn at oracle.com]
> *Sent:* Saturday, July 06, 2013 3:10 AM
> *To:* Lindenmaier, Goetz
> *Cc:* Vladimir Kozlov; 'hotspot-dev at openjdk.java.net';
> 'ppc-aix-port-dev at openjdk.java.net'
> *Subject:* Re: RFR (M): 8019519: PPC64 (part 105): C interpreter:
> implement support for jvmti early return.
>
>
> Hi Goetz,
>
> As before it looks good in general.
>
> I'm not sure the following change is correct:
>
>
> - THREAD->clr_pop_frame_in_process();
> + } else {
> + istate->set_msg(return_from_method);
> }
>
>
> The above will reset the *msg* to the *return_from_method*
> when it was already set to the *early_return* which is
> inconsistent with the *popping_frame* case.
>
> Could you explain why did you make it for non-popping_frame cases only?
> It would not surprise me if it does not matter though. :)
>
>
> Also, one more case needs to be added to the BytecodeInterpreter::C_msg():
>
> 322? case BytecodeInterpreter::early_return: return("early_return");
>
>
>
> One more comment below...
>
>
> On 7/4/13 5:39 AM, Lindenmaier, Goetz wrote:
>
> Hi,
>
> pop_frame_in_process will be cleared when the frame manager calls
>
> the interpreter loop again with the message popping_frame.
>
> 6953477 broke our pop_frame tests. I don't see though how pop_frame
>
> could be tested with 6953477, as the capability is not set
>
> if CC_INTERP is defined.
>
>
> It is explicitly disabled in the jvmtiManageCapabilities.cpp:
> #ifndef CC_INTERP
> jc.can_pop_frame = 1;
> jc.can_force_early_return = 1;
> #endif // !CC_INTERP
>
> It is because it was not fully implemented yet for CC_INTERP.
> You can take the can_force_early_return out of the ifdef.
>
>
> Thanks,
> Serguei
>
>
> (I removed a ShouldNotReachHere in the updated change, that was
>
> in the wrong patch of the port but belongs here.)
>
> _/return/_kind is unused. In the updated webrev I also removed the
>
> definition of the field.
>
> I also fixed the syntax stuff.
>
> This is the new webrev:
>
> http://cr.openjdk.java.net/~goetz/webrevs/8019519-cInter_earlyRet-2/
> <http://cr.openjdk.java.net/%7Egoetz/webrevs/8019519-cInter_earlyRet-2/>
>
> Best regards,
>
> Goetz.
>
> *From:*serguei.spitsyn at oracle.com <mailto:serguei.spitsyn at oracle.com>
> [mailto:serguei.spitsyn at oracle.com]
> *Sent:* Mittwoch, 3. Juli 2013 21:59
> *To:* Lindenmaier, Goetz
> *Cc:* 'hotspot-dev at openjdk.java.net
> <mailto:hotspot-dev at openjdk.java.net>';
> 'ppc-aix-port-dev at openjdk.java.net
> <mailto:ppc-aix-port-dev at openjdk.java.net>'; Vladimir Kozlov
> *Subject:* Re: RFR (M): 8019519: PPC64 (part 105): C interpreter:
> implement support for jvmti early return.
>
> Hi Goetz,
>
> The fix looks good in general.
> Thank you for doing this!
>
> A couple of comments:
>
> src/share/vm/interpreter/bytecodeInterpreter.cpp:
>
> It looks like you have accidentally dropped the line:
>
> 2981 THREAD->clr_pop_frame_in_process();
>
>
> What is the reason that the following lines are deleted? (the same as
> Vladimir already asked):
>
> 2962 istate->set_return_kind((Bytecodes::Code)opcode);
> 2987 istate->set_return_kind((Bytecodes::Code)opcode);
>
>
> Thanks,
> Serguei
>
> On 7/3/13 3:24 AM, Lindenmaier, Goetz wrote:
>
> Hi,
>
>
>
> This change implements jvmti early return and pop frame support
>
> in the cppInterpreter. To work properly, the corresponding properties in
>
> JvmtiManageCapabilities::init_onload_capabilities() must be enabled.
>
> We will add this in a later change.
>
>
>
> I would be happy about a review of this change:
>
> http://cr.openjdk.java.net/~goetz/webrevs/8019519-cInter_earlyRet/ <http://cr.openjdk.java.net/%7Egoetz/webrevs/8019519-cInter_earlyRet/>
>
>
>
> Best regards,
>
> Goetz.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/attachments/20130708/503fc85b/attachment-0001.html
More information about the ppc-aix-port-dev
mailing list