From: Changbin Du <changbin.du@gmail.com>
To: Jiri Olsa <jolsa@redhat.com>, Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Namhyung Kim <namhyung@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
linux-kernel@vger.kernel.org, Changbin Du <changbin.du@gmail.com>
Subject: [PATCH v3 01/17] perf ftrace: select function/function_graph tracer automatically
Date: Thu, 9 Jul 2020 00:45:49 +0800 [thread overview]
Message-ID: <20200708164605.31245-2-changbin.du@gmail.com> (raw)
In-Reply-To: <20200708164605.31245-1-changbin.du@gmail.com>
The '-g/-G' options have already implied function_graph tracer should be
used instead of function tracer. So the extra option '--tracer' can be
killed.
This patch changes the behavior as below:
- By default, function tracer is used.
- If '-g' or '-G' option is on, then function_graph tracer is used.
- The perf configuration item 'ftrace.tracer' is marked as deprecated.
- The option '--tracer' is marked as deprecated.
Here are some examples.
This will start tracing all functions using function tracer:
$ sudo perf ftrace
This will trace all functions using function graph tracer:
$ sudo perf ftrace -G
This will trace function vfs_read using function graph tracer:
$ sudo perf ftrace -G vfs_read
Signed-off-by: Changbin Du <changbin.du@gmail.com>
---
v3: remove default '*' for -G/-T.
---
tools/perf/Documentation/perf-config.txt | 5 -----
tools/perf/Documentation/perf-ftrace.txt | 2 +-
tools/perf/builtin-ftrace.c | 15 ++++++++++-----
3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt
index c7d3df5798e2..a25fee7de3b2 100644
--- a/tools/perf/Documentation/perf-config.txt
+++ b/tools/perf/Documentation/perf-config.txt
@@ -612,11 +612,6 @@ trace.*::
"libbeauty", the default, to use the same argument beautifiers used in the
strace-like sys_enter+sys_exit lines.
-ftrace.*::
- ftrace.tracer::
- Can be used to select the default tracer. Possible values are
- 'function' and 'function_graph'.
-
llvm.*::
llvm.clang-path::
Path to clang. If omit, search it from $PATH.
diff --git a/tools/perf/Documentation/perf-ftrace.txt b/tools/perf/Documentation/perf-ftrace.txt
index b80c84307dc9..952e46669168 100644
--- a/tools/perf/Documentation/perf-ftrace.txt
+++ b/tools/perf/Documentation/perf-ftrace.txt
@@ -24,7 +24,7 @@ OPTIONS
-t::
--tracer=::
- Tracer to use: function_graph or function.
+ Tracer to use: function_graph or function. This option is deprecated.
-v::
--verbose=::
diff --git a/tools/perf/builtin-ftrace.c b/tools/perf/builtin-ftrace.c
index 2bfc1b0db536..5f53da87040d 100644
--- a/tools/perf/builtin-ftrace.c
+++ b/tools/perf/builtin-ftrace.c
@@ -27,7 +27,6 @@
#include "util/cap.h"
#include "util/config.h"
-#define DEFAULT_TRACER "function_graph"
struct perf_ftrace {
struct evlist *evlist;
@@ -419,6 +418,7 @@ static int perf_ftrace_config(const char *var, const char *value, void *cb)
if (strcmp(var, "ftrace.tracer"))
return -1;
+ pr_warning("Configuration ftrace.tracer is deprecated\n");
if (!strcmp(value, "function_graph") ||
!strcmp(value, "function")) {
ftrace->tracer = value;
@@ -459,7 +459,7 @@ int cmd_ftrace(int argc, const char **argv)
{
int ret;
struct perf_ftrace ftrace = {
- .tracer = DEFAULT_TRACER,
+ .tracer = "function",
.target = { .uid = UINT_MAX, },
};
const char * const ftrace_usage[] = {
@@ -469,7 +469,7 @@ int cmd_ftrace(int argc, const char **argv)
};
const struct option ftrace_options[] = {
OPT_STRING('t', "tracer", &ftrace.tracer, "tracer",
- "tracer to use: function_graph(default) or function"),
+ "tracer to use: function or function_graph (This option is deprecated)"),
OPT_STRING('p', "pid", &ftrace.target.pid, "pid",
"trace on existing process id"),
OPT_INCR('v', "verbose", &verbose,
@@ -479,11 +479,13 @@ int cmd_ftrace(int argc, const char **argv)
OPT_STRING('C', "cpu", &ftrace.target.cpu_list, "cpu",
"list of cpus to monitor"),
OPT_CALLBACK('T', "trace-funcs", &ftrace.filters, "func",
- "trace given functions only", parse_filter_func),
+ "trace given functions using function tracer",
+ parse_filter_func),
OPT_CALLBACK('N', "notrace-funcs", &ftrace.notrace, "func",
"do not trace given functions", parse_filter_func),
OPT_CALLBACK('G', "graph-funcs", &ftrace.graph_funcs, "func",
- "Set graph filter on given functions", parse_filter_func),
+ "trace given functions using function_graph tracer",
+ parse_filter_func),
OPT_CALLBACK('g', "nograph-funcs", &ftrace.nograph_funcs, "func",
"Set nograph filter on given functions", parse_filter_func),
OPT_INTEGER('D', "graph-depth", &ftrace.graph_depth,
@@ -505,6 +507,9 @@ int cmd_ftrace(int argc, const char **argv)
if (!argc && target__none(&ftrace.target))
ftrace.target.system_wide = true;
+ if (!list_empty(&ftrace.graph_funcs) || !list_empty(&ftrace.nograph_funcs))
+ ftrace.tracer = "function_graph";
+
ret = target__validate(&ftrace.target);
if (ret) {
char errbuf[512];
--
2.25.1
next prev parent reply other threads:[~2020-07-08 16:46 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-08 16:45 [PATCH v3 00/17] perf: ftrace enhancement Changbin Du
2020-07-08 16:45 ` Changbin Du [this message]
2020-07-08 16:45 ` [PATCH v3 02/17] perf ftrace: add option '-F/--funcs' to list available functions Changbin Du
2020-07-08 16:45 ` [PATCH v3 03/17] perf ftrace: add option -t/--tid to filter by thread id Changbin Du
2020-07-08 16:45 ` [PATCH v3 04/17] perf ftrace: add option -d/--delay to delay tracing Changbin Du
2020-07-08 16:45 ` [PATCH v3 05/17] perf ftrace: factor out function write_tracing_file_int() Changbin Du
2020-07-08 16:45 ` [PATCH v3 06/17] perf ftrace: add option '-m/--buffer-size' to set per-cpu buffer size Changbin Du
2020-07-08 16:45 ` [PATCH v3 07/17] perf ftrace: show trace column header Changbin Du
2020-07-08 16:45 ` [PATCH v3 08/17] perf ftrace: add option '--inherit' to trace children processes Changbin Du
2020-07-08 16:45 ` [PATCH v3 09/17] perf: util: add general function to parse sublevel options Changbin Du
2020-07-08 17:34 ` Arnaldo Carvalho de Melo
2020-07-10 13:14 ` Changbin Du
2020-07-08 16:45 ` [PATCH v3 10/17] perf ftrace: add support for tracing option 'func_stack_trace' Changbin Du
2020-07-08 16:45 ` [PATCH v3 11/17] perf ftrace: add support for trace option sleep-time Changbin Du
2020-07-08 16:46 ` [PATCH v3 12/17] perf ftrace: add support for trace option funcgraph-irqs Changbin Du
2020-07-08 16:46 ` [PATCH v3 13/17] perf ftrace: add support for tracing option 'irq-info' Changbin Du
2020-07-08 16:46 ` [PATCH v3 14/17] perf ftrace: add option 'verbose' to show more info for graph tracer Changbin Du
2020-07-08 16:46 ` [PATCH v3 15/17] perf ftrace: add support for trace option tracing_thresh Changbin Du
2020-07-08 16:46 ` [PATCH v3 16/17] perf: ftrace: allow set graph depth by '--graph-opts' Changbin Du
2020-07-08 16:46 ` [PATCH v3 17/17] perf ftrace: add change log Changbin Du
2020-07-08 17:39 ` [PATCH v3 00/17] perf: ftrace enhancement Arnaldo Carvalho de Melo
2020-07-10 13:35 ` Changbin Du
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200708164605.31245-2-changbin.du@gmail.com \
--to=changbin.du@gmail.com \
--cc=acme@kernel.org \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.