RFR(S): 8165315: [ppc] Port "8133749: NMT detail stack trace cleanup"

David Holmes david.holmes at oracle.com
Mon Sep 5 23:35:26 UTC 2016


Adding in Chris Plummer specifically ...

On 6/09/2016 12:25 AM, Lindenmaier, Goetz wrote:
> HI Volker,
>
> thanks for looking at this.
>
>> Does it mean that other platforms except ppc64 are always missing the first frame of stack traces in the hs_err
> Yes, in some cases:
>        frame fr = _context ? os::fetch_frame_from_context(_context)
>                            : os::current_frame();
>        print_native_stack(st, fr, _thread, buf, sizeof(buf));

Chris has been working in this area so I really want to hear his take on 
this. I really don't like seeing PPC specific code in os_posix.cpp, and 
I really want to understand why it is needed, especially when the 
implication is that PPC os::current_frame() is correct and all others 
seem to be wrong!

Thanks,
David

> Best regards,
>   Goetz.
>
>
>> -----Original Message-----
>> From: Volker Simonis [mailto:volker.simonis at gmail.com]
>> Sent: Montag, 5. September 2016 16:16
>> To: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>
>> Cc: hotspot-runtime-dev at openjdk.java.net
>> Subject: Re: RFR(S): 8165315: [ppc] Port "8133749: NMT detail stack trace
>> cleanup"
>>
>>
>>
>> On Monday, September 5, 2016, Lindenmaier, Goetz
>> <goetz.lindenmaier at sap.com <mailto:goetz.lindenmaier at sap.com> >
>> wrote:
>>
>>
>> 	Hi,
>>
>> 	The test coming with 8133749 showed a row of problems on the ppc
>> platforms.
>> 	This change fixed these.
>>
>>
>> 	Also, I moved "isSlowDebugBuild()" to Platform.java as there also is
>>
>> 	isDebugBuild(), and we have other places where we use this.
>>
>> 	Please review this change. I also please need a sponsor.
>> 	http://cr.openjdk.java.net/~goetz/wr16/8165315-
>> fixStackTrace/01/webrev.bs/
>> <http://cr.openjdk.java.net/~goetz/wr16/8165315-
>> fixStackTrace/01/webrev.bs/>
>> 	http://cr.openjdk.java.net/~goetz/wr16/8165315-
>> fixStackTrace/01/webrev.hs/
>> <http://cr.openjdk.java.net/~goetz/wr16/8165315-
>> fixStackTrace/01/webrev.hs/>
>>
>> 	More details:
>>
>> 	On power, current_frame() returns the frame of the method that
>> 	called current_frame(). This is as documented in os.hpp.
>>
>> 	Get_native_stack() in os_posix.cpp expects current_frame() to go up
>> 	one more frame. To adapt to this expectation, we increment toSkip
>> by
>> 	one on ppc, which has the same effect. (If we change
>> current_frame(),
>> 	one less frame will be printed to hs_err files etc.)
>>
>>
>>
>>
>> Hi Goetz,
>>
>> Your change looks good. I just don't understand the difference between
>> current_frame() on various platforms. Does it mean that other platforms
>> except ppc64 are always missing the first frame of stack traces in the hs_err
>> file ?
>>
>> Thanks,
>> Volker
>>
>>
>> 	"8153743: AllocateHeap() and ReallocateHeap() should use
>> ALWAYSINLINE macro"
>> 	is not properly implemented on Aix. The 'inline' keyword is missing in
>> the
>> 	macro on aix.
>>
>> 	Also, on Aix ALWAYSINLINE has no effect in the slowdebug build. So
>> the
>> 	check in the test whether AllocateHeap is inlined must be skipped as
>> on
>> 	other platforms.
>>
>> 	Best regards,
>> 	  Goetz.
>>
>


More information about the hotspot-runtime-dev mailing list