RFR 8153123 : Streamline StackWalker code

Coleen Phillimore coleen.phillimore at oracle.com
Tue Apr 5 18:25:19 UTC 2016


A correction below.

On 4/5/16 1:29 PM, Coleen Phillimore wrote:
>
> Also meant to include core-libs-dev in the email.
> Thanks,
> Coleen
>
> On 4/5/16 1:27 PM, Coleen Phillimore wrote:
>>
>> Hi, I've reviewed the hotspot changes and some of the jdk changes. 
>> This looks really good.
>>
>> One comment about the jvm function names:
>>
>> I think FillInStackTraceElement is too close of a name to 
>> Throwable::fill_in_stack_trace().
>>
>> -JVM_ENTRY(void, JVM_SetMethodInfo(JNIEnv *env, jobject frame))
>> +JVM_ENTRY(void, JVM_FillInStackTraceElement(JNIEnv *env, jobject 
>> frame, jobject stack))
>>    JVMWrapper("JVM_SetMethodInfo");
>> - Handle stackFrame(THREAD, JNIHandles::resolve(frame));
>> - java_lang_StackFrameInfo::fill_methodInfo(stackFrame, THREAD);
>> + Handle stack_frame_info(THREAD, JNIHandles::resolve(frame));
>> + Handle stack_trace_element(THREAD, JNIHandles::resolve(stack));
>> + java_lang_StackFrameInfo::fill_methodInfo(stack_frame_info, 
>> stack_trace_element, THREAD); JVM_END
>>
>>
>> And the function is called fill_methodInfo in the javaClasses function.
>>
>> I think the JVM and the java_lang_StackFrameInfo function names 
>> should be closer.
>>
>> I wonder if the name JVM_ToStackFrameElement() and 
>> java_lang_StackFrameInfo::to_stack_frame_element() would be better 
>> and then it'd match the Java name.
>>

I meant JVM_ToStackTraceElement() and 
java_lang_StackFrameInfo::to_stack_trace_element(), since it's producing 
a StackTraceElement.

thanks,
Coleen
>> Thanks!
>> Coleen
>>
>> On 4/4/16 9:29 PM, Mandy Chung wrote:
>>>> On Apr 4, 2016, at 4:45 PM, Brent Christian 
>>>> <brent.christian at oracle.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I'd like to check in some footprint and code reduction changes to 
>>>> the java.lang.StackWalker implementation.
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~bchristi/8153123/webrev.00/
>>>> Bug:
>>>> https://bugs.openjdk.java.net/browse/JDK-8153123
>>>>
>>> This looks good to me.
>>>
>>> One thing to mention is that this patch is a follow-up work from the 
>>> investigation on what it takes to enable Throwable to use 
>>> StackWalker (JDK-8141239). The current built-in VM backtrace is very 
>>> compact and performant.  We have identified and prototypes the 
>>> performance improvements if Throwable backtrace is generated using 
>>> stack walker.  There are some performance gaps that we agree to 
>>> defer JDK-8141239 to a future release and improve the footprint 
>>> performance and GC throughput concerns when MemberNames are stored 
>>> in the throwable backtrace.
>>>
>>> Mandy
>>>
>>
>




More information about the core-libs-dev mailing list