RFR(S): 8028412 - AsyncGetCallTrace() is broken on x86 in JDK7u40

Markus Gronlund markus.gronlund at oracle.com
Wed Nov 27 02:32:25 PST 2013


Hi Sergei,

 

I have already worked with Nik on this issue and got his confirmation on the fix.

 

Thanks

Markus

 

From: Serguei Spitsyn 
Sent: den 27 november 2013 11:31
To: Markus Gronlund; hotspot-compiler-dev at openjdk.java.net; hotspot-runtime-dev at openjdk.java.net; serviceability-dev
Cc: Oleg Mazurov; Nikolay Molchanov
Subject: Re: RFR(S): 8028412 - AsyncGetCallTrace() is broken on x86 in JDK7u40

 

Hi Markus,

The fix looks Ok.

It'd be helpful if Oleg and the Solaris Studio guys could confirm this fix works fine for them.
I've added Oleg and Nik to the CC-list.
They might request a link to the Solaris or Linux binaries.

Thanks,
Serguei


On 11/27/13 1:47 AM, Markus Gronlund wrote:

Greetings,

 

Kindly asking for reviews for the following change:

 

Bug: https://bugs.openjdk.java.net/browse/JDK-8028412 

Webrev: HYPERLINK "http://cr.openjdk.java.net/%7Emgronlun/8028412/webrev01/"http://cr.openjdk.java.net/~mgronlun/8028412/webrev01/ 

 

Description:

 

AsynchGetCallTrace() uses platform specific code for stack frame traversals.

 

On x86, there currently exist a defensive construct that practically disallows stack traversal over entry_frame code stubs, such as StubRoutine(1) frames:

 

src/cpu/x86/vm/frame_x86.cpp b/src/cpu/x86/vm/frame_x86.cpp:

 

bool frame::safe_for_sender(JavaThread* thread)  {

.

 

if (!Interpreter::contains(_pc) && _cb->frame_size() <= 0) {
  //assert(0, "Invalid frame_size");

 return false;
}

.

 

Since entry frames (such as StubRoutine(1)) have a frame size of 0, the code returns prematurely.

 

Fix is to move this frame size check post handling of is_entry_frame(),  where the code_stubs are processed.

 

Testing completed:

Sun Studio Profiler reproducer testcase

SpecJBB2005

Kitchensink

 

 

Thanks
Markus

 

 

 

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20131127/0280cdff/attachment.html 


More information about the hotspot-runtime-dev mailing list