RFR (M): 8019519: PPC64 (part 105): C interpreter: implement support for jvmti early return.

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Sat Jul 6 12:35:06 PDT 2013


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/20130706/5e51c91a/attachment.html 


More information about the ppc-aix-port-dev mailing list