Re: FTRACE_WARN_ON((rec->flags & ~FTRACE_FL_MASK) == 0))

From: Steven Rostedt
Date: Wed Aug 28 2013 - 11:17:53 EST


On Wed, 28 Aug 2013 09:58:33 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> I'll take that back. The ftrace_shutdown() is called on success, thus
> this is a normal path. I have to find out what perf is doing. Do you
> have any clue to what calls are being made to perf?

This may be the error path that is taken that causes things to get off
whack.

Dave, can you add this patch to your kernels you test, and that way,
the next time you hit this error, I want to see if this warning was
triggered too.

If we did not unregister the ftrace ops but free the filters, it will
cause the accounting to get out of whack.

Thanks!

-- Steve

diff --git a/kernel/trace/trace_event_perf.c b/kernel/trace/trace_event_perf.c
index 80c36bc..05167bb 100644
--- a/kernel/trace/trace_event_perf.c
+++ b/kernel/trace/trace_event_perf.c
@@ -306,6 +306,7 @@ static int perf_ftrace_function_unregister(struct perf_event *event)
{
struct ftrace_ops *ops = &event->ftrace_ops;
int ret = unregister_ftrace_function(ops);
+ WARN_ON(ret);
ftrace_free_filter(ops);
return ret;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/