On Wed, 1 Nov 2017 14:33:44 +0000 Julien Thierry <[email protected]> wrote:
> When linux is built without support for function graph tracer, the ftrace > builtin of perf will fail when trying to reset max_graph_depth because the > file does not exist. This prevents the use of function tracer from perf. > > Do not attempt to write this file when the tracer in use is not > function_graph. > > Signed-off-by: Julien Thierry <[email protected]> > Cc: Will Deacon <[email protected]> > Cc: Mark Rutland <[email protected]> > Cc: Peter Zijlstra <[email protected]> > Cc: Ingo Molnar <[email protected]> > Cc: [email protected] > --- > tools/perf/builtin-ftrace.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/builtin-ftrace.c b/tools/perf/builtin-ftrace.c > index 25a42ac..48120f2 100644 > --- a/tools/perf/builtin-ftrace.c > +++ b/tools/perf/builtin-ftrace.c > @@ -130,7 +130,8 @@ static int reset_tracing_files(struct perf_ftrace *ftrace > __maybe_unused) > if (reset_tracing_cpu() < 0) > return -1; > > - if (write_tracing_file("max_graph_depth", "0") < 0) > + if (!strcmp(ftrace->tracer, "function_graph") && > + write_tracing_file("max_graph_depth", "0") < 0) Hmm, instead of doing this, could we just do a stat on the file first. As with trace-cmd, I like to reset files like this even when not enabling function_graph tracer. -- Steve > return -1; > > reset_tracing_filters(); > -- > 1.9.1

