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

From: Steven Rostedt
Date: Tue Aug 13 2019 - 13:48:04 EST


On Tue, 13 Aug 2019 18:31:14 +0100
Will Deacon <will@xxxxxxxxxx> wrote:

> Hi Steve,
>
> On Thu, Aug 08, 2019 at 10:24:40PM -0400, Steven Rostedt wrote:
> > 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.
>
> Are you going to post another version of this or have you queued it already?
> Just want to make sure it doesn't slip through the cracks.
>

Ah, it's in my queue. I should post a new version :-/

Thanks for the reminder.

-- Steve