Re: ftrace_graph_filter not working correctly since v4.10

From: Steven Rostedt
Date: Thu Mar 02 2017 - 13:17:04 EST



Namhyung,

Just an FYI...

-- Steve


On Thu, 2 Mar 2017 12:49:40 -0500
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Wed, 1 Mar 2017 22:47:30 -0500
> Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> > On Wed, 1 Mar 2017 22:28:43 -0500
> > Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> > >
> > > 4.10 is fine. It's what has been merged for 4.11 that's broken. I'm
> > > doing a bisect now to see what broke it. Yes, lots of commits touched
> > > that code recently.
> >
> > I found the bad commit. I'll have a patch for you to test tomorrow.
> >
>
> Can you test this patch please.
>
> -- Steve
>
> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
> index 2d554a0..1b33a41 100644
> --- a/kernel/trace/ftrace.c
> +++ b/kernel/trace/ftrace.c
> @@ -4403,10 +4403,9 @@ static void __init set_ftrace_early_graph(char *buf, int enable)
> char *func;
> struct ftrace_hash *hash;
>
> - if (enable)
> - hash = ftrace_graph_hash;
> - else
> - hash = ftrace_graph_notrace_hash;
> + hash = alloc_ftrace_hash(FTRACE_HASH_DEFAULT_BITS);
> + if (WARN_ON(!hash))
> + return;
>
> while (buf) {
> func = strsep(&buf, ",");
> @@ -4416,6 +4415,11 @@ static void __init set_ftrace_early_graph(char *buf, int enable)
> printk(KERN_DEBUG "ftrace: function %s not "
> "traceable\n", func);
> }
> +
> + if (enable)
> + ftrace_graph_hash = hash;
> + else
> + ftrace_graph_notrace_hash = hash;
> }
> #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
>