Messages in this thread Patch in this message | | | From | Taeung Song <> | Subject | [PATCH v2 2/4] perf ftrace: Add ftrace.tracer config option | Date | Tue, 31 Jan 2017 20:38:29 +0900 |
| |
Currently perf ftrace command will select 'function_graph' or 'function'. So add ftrace.tracer config option to select tracer
# cat ~/.perfconfig [ftrace] tracer = function
# perf ftrace usleep 123456 | head -10 <...>-14450 [002] d... 10089.284231: finish_task_switch <-__schedule <...>-14450 [002] .... 10089.284232: finish_wait <-pipe_wait <...>-14450 [002] .... 10089.284232: mutex_lock <-pipe_wait <...>-14450 [002] .... 10089.284232: _cond_resched <-mutex_lock
Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> --- tools/perf/builtin-ftrace.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/tools/perf/builtin-ftrace.c b/tools/perf/builtin-ftrace.c index 414444d..00e228f 100644 --- a/tools/perf/builtin-ftrace.c +++ b/tools/perf/builtin-ftrace.c @@ -17,6 +17,7 @@ #include "evlist.h" #include "target.h" #include "thread_map.h" +#include "util/config.h" #define DEFAULT_TRACER "function_graph" @@ -198,6 +199,26 @@ static int __cmd_ftrace(struct perf_ftrace *ftrace, int argc, const char **argv) return done ? 0 : -1; } +static int perf_ftrace_config(const char *var, const char *value, void *cb) +{ + struct perf_ftrace *ftrace = cb; + + if (!strcmp(var, "ftrace.tracer")) { + if (!strcmp(value, "function_graph")) + ftrace->tracer = DEFAULT_TRACER; + else if (!strcmp(value, "function")) + ftrace->tracer = "function"; + else { + pr_err("Please select function_graph(default)" + "or function to use tracer.\n"); + return -1; + } + return 0; + } + + return 0; +} + int cmd_ftrace(int argc, const char **argv, const char *prefix __maybe_unused) { int ret; @@ -218,6 +239,10 @@ int cmd_ftrace(int argc, const char **argv, const char *prefix __maybe_unused) OPT_END() }; + ret = perf_config(perf_ftrace_config, &ftrace); + if (ret < 0) + return -1; + argc = parse_options(argc, argv, ftrace_options, ftrace_usage, PARSE_OPT_STOP_AT_NON_OPTION); if (!argc) -- 2.7.4
| |