Re: [PATCH] ftrace: Allow WITH_ARGS flavour of graph tracer with shadow call stack

From: Will Deacon
Date: Tue Dec 13 2022 - 06:36:36 EST


On Mon, Dec 12, 2022 at 10:36:23AM +0000, Mark Rutland wrote:
> On Fri, Dec 09, 2022 at 04:51:39PM -0500, Steven Rostedt wrote:
> > On Fri, 9 Dec 2022 14:40:25 +0000
> > Mark Rutland <mark.rutland@xxxxxxx> wrote:
> >
> > > On Fri, Dec 09, 2022 at 03:34:02PM +0100, Ard Biesheuvel wrote:
> > > > The recent switch on arm64 from DYNAMIC_FTRACE_WITH_REGS to
> > > > DYNAMIC_FTRACE_WITH_ARGS failed to take into account that we currently
> > > > require the former in order to allow the function graph tracer to be
> > > > enabled in combination with shadow call stacks. This means that this is
> > > > no longer permitted at all, in spite of the fact that either flavour of
> > > > ftrace works perfectly fine in this combination.
> > > >
> > > > Given that arm64 is the only arch that implements shadow call stacks in
> > > > the first place, let's update the condition to just reflect the arm64
> > > > change. When other architectures adopt shadow call stack support, this
> > > > can be revisited if needed.
> > > >
> > > > Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
> > >
> > > My bad; sorry about this, and thanks for the fix!
> > >
> > > Acked-by: Mark Rutland <mark.rutland@xxxxxxx>
> > >
> > > We should probably also add:
> > >
> > > Fixes: 26299b3f6ba26bfc ("ftrace: arm64: move from REGS to ARGS")
> >
> > Actually, I believe it is:
> >
> > Fixes: ddc9863e9e90 ("scs: Disable when function graph tracing is enabled")
>
> Ah; it's slightly more subtle since these were on different branches that got
> merged. Either's correct in its own branch, and the merge is where things went
> wrong.
>
> I think the overall least confusing thing is to bite the bullet and list both
> REGS and ARGS, i.e.
>
> depends on DYNAMIC_FTRACE_WITH_ARGS || DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER
>
> ... and for the fixes tag have:
>
> Fixes: ddc9863e9e90 ("scs: Disable when function graph tracing is enabled")
>
> That way the commit is correct regardless of the REGS -> ARGS conversion, and
> will work if backported independently.

Ard -- please can you respin as per Mark's suggestion above? I can then send
it as a fix later this week.

Cheers,

Will