Re: [PATCH 1/2 v2] tracing/arm64: Have max stack tracer handle the case of return address after data

From: Steven Rostedt
Date: Thu Aug 08 2019 - 22:24:46 EST


On Fri, 9 Aug 2019 10:17:19 +0800
Jiping Ma <Jiping.Ma2@xxxxxxxxxxxxx> wrote:

> On 2019å08æ09æ 01:24, Steven Rostedt wrote:
> > On Thu, 8 Aug 2019 18:11:53 +0100
> > Will Deacon <will@xxxxxxxxxx> wrote:
> >
> >>> We could make it more descriptive of what it will do and not the reason
> >>> for why it is done...
> >>>
> >>>
> >>> ARCH_FTRACE_SHIFT_STACK_TRACER
> >> Acked-by: Will Deacon <will@xxxxxxxxxx>
> > Thanks Will!
> >
> > Here's the official patch.
> >
> > From: "Steven Rostedt (VMware)" <rostedt@xxxxxxxxxxx>
> >
> > Most archs (well at least x86) store the function call return address on the
> > stack before storing the local variables for the function. The max stack
> > tracer depends on this in its algorithm to display the stack size of each
> > function it finds in the back trace.
> >
> > Some archs (arm64), may store the return address (from its link register)
> > just before calling a nested function. There's no reason to save the link
> > register on leaf functions, as it wont be updated. This breaks the algorithm
> > of the max stack tracer.
> >
> > Add a new define ARCH_RET_ADDR_AFTER_LOCAL_VARS that an architecture may set
>
> ARCH_FTRACE_SHIFT_STACK_TRACER is used in the code.

Ah, I did a s/x/y/ to the diff of the patch, but not the change log.
Thanks for pointing that out. I also need to update the comment in 2/2.

-- Steve

>
> Jiping
>
>