On Tue, Aug 02, 2016 at 10:59:36PM -0400, Steven Rostedt wrote: > On Tue, 2 Aug 2016 21:50:12 -0500 > Josh Poimboeuf <[email protected]> wrote: > > > > diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h > > index 1e814ae..fc508a7 100644 > > --- a/include/linux/ftrace.h > > +++ b/include/linux/ftrace.h > > @@ -795,7 +795,9 @@ struct ftrace_ret_stack { > > unsigned long func; > > unsigned long long calltime; > > unsigned long long subtime; > > +#if defined(CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST) && > > !defined(CC_USING_FENTRY) > > We need to make a new defined in ftrace.h: > > #if defined(CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST) && !defined(CC_USING_FENTRY) > # define HAVE_FUNCTION_GRAPH_FP_TEST > #endif > > And use that instead of this && complexity. > > Or better yet, get rid of the CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST define > and only have HAVE_FUNCTION_GRAPH_FP_TEST defined in the asm/ftrace.h > in each arch. Then, x86 could just do; > > #ifndef CC_USING_FENTRY > # define HAVE_FUNCTION_GRAPH_FP_TEST > #endif
Sounds good. I was thinking I could also add a similar define to indicate whether an arch passes the return address stack pointer to ftrace_push_return_trace(). HAVE_FUNCTION_GRAPH_RET_ADDR_PTR? -- Josh

