linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Changbin Du <changbin.du@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>,
	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
Subject: Re: [PATCH v7 01/18] perf ftrace: select function/function_graph tracer automatically
Date: Tue, 4 Aug 2020 09:51:15 -0300	[thread overview]
Message-ID: <20200804125115.GF3440834@kernel.org> (raw)
In-Reply-To: <20200718064826.9865-2-changbin.du@gmail.com>

Em Sat, Jul 18, 2020 at 02:48:09PM +0800, Changbin Du escreveu:
> 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.

You should try to be more granular, for instance, I think the decision
to change the default is questionable, but could be acceptable.

But why deprecate the perf configuration for the default tracer?

Say people who already use 'perf ftrace ls' go and use with this patch
and see that it changed the default from the function_graph tracer to
the function tracer and disagree with you, they want the default to be
the function graph tracer, know that there is (or there was) a
ftrace.tracer in ~/.prefconfig, and then try that, only to find out that
it is not possible, frustrating :-\

So can we please remove this deprecation of ftrace.tracer so that people
used to how it was can get that behaviour back?

I'll look at the other patches so as to provide comments on all of
them and to speed things up I may end up removing this deprecation of
ftrace.tracer and apply the rest, we can always revisit parts that I
remove.

- Arnaldo

> 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
> 

-- 

- Arnaldo

  reply	other threads:[~2020-08-04 12:51 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-18  6:48 [PATCH v7 00/18] perf: ftrace enhancement Changbin Du
2020-07-18  6:48 ` [PATCH v7 01/18] perf ftrace: select function/function_graph tracer automatically Changbin Du
2020-08-04 12:51   ` Arnaldo Carvalho de Melo [this message]
2020-08-06  0:14     ` Changbin Du
2020-08-06  1:05       ` Arnaldo Carvalho de Melo
2020-08-08  2:22         ` Changbin Du
2020-07-18  6:48 ` [PATCH v7 02/18] perf ftrace: add option '-F/--funcs' to list available functions Changbin Du
2020-07-18  6:48 ` [PATCH v7 03/18] perf ftrace: factor out function write_tracing_file_int() Changbin Du
2020-07-18  6:48 ` [PATCH v7 04/18] perf ftrace: add option '-m/--buffer-size' to set per-cpu buffer size Changbin Du
2020-07-18  6:48 ` [PATCH v7 05/18] perf ftrace: show trace column header Changbin Du
2020-07-18  6:48 ` [PATCH v7 06/18] perf ftrace: add option '--inherit' to trace children processes Changbin Du
2020-07-18  6:48 ` [PATCH v7 07/18] perf: util: add general function to parse sublevel options Changbin Du
2020-07-18  6:48 ` [PATCH v7 08/18] perf ftrace: add support for tracing option 'func_stack_trace' Changbin Du
2020-07-18  6:48 ` [PATCH v7 09/18] perf ftrace: add support for trace option sleep-time Changbin Du
2020-07-18  6:48 ` [PATCH v7 10/18] perf ftrace: add support for trace option funcgraph-irqs Changbin Du
2020-07-18  6:48 ` [PATCH v7 11/18] perf ftrace: add support for tracing option 'irq-info' Changbin Du
2020-07-18  6:48 ` [PATCH v7 12/18] perf ftrace: add option 'verbose' to show more info for graph tracer Changbin Du
2020-07-18  6:48 ` [PATCH v7 13/18] perf ftrace: add support for trace option tracing_thresh Changbin Du
2020-07-18  6:48 ` [PATCH v7 14/18] perf: ftrace: allow set graph depth by '--graph-opts' Changbin Du
2020-07-18  6:48 ` [PATCH v7 15/18] perf ftrace: add option -D/--delay to delay tracing Changbin Du
2020-07-18  6:48 ` [PATCH v7 16/18] perf ftrace: add option --tid to filter by thread id Changbin Du
2020-07-18  6:48 ` [PATCH v7 17/18] perf: ftrace: Add set_tracing_options() to set all trace options Changbin Du
2020-07-18  6:48 ` [PATCH v7 18/18] perf ftrace: add change log Changbin Du
2020-07-21 13:39 ` [PATCH v7 00/18] perf: ftrace enhancement Namhyung Kim
2020-07-31 17:35 ` Changbin Du
2020-07-31 22:42   ` Arnaldo Carvalho de Melo

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=20200804125115.GF3440834@kernel.org \
    --to=acme@kernel.org \
    --cc=changbin.du@gmail.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).