mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Taeung Song <treeze.taeung@gmail.com>
To: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
Cc: linux-kernel@vger.kernel.org, Jiri Olsa <jolsa@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Wang Nan <wangnan0@huawei.com>
Subject: Re: [PATCH v2 2/4] perf ftrace: Add ftrace.tracer config option
Date: Wed, 1 Feb 2017 16:27:02 +0900	[thread overview]
Message-ID: <3a8d93cb-e988-cdf8-b5a7-eee48096202c@gmail.com> (raw)
In-Reply-To: <20170131131509.GD4491@kernel.org>



On 01/31/2017 10:15 PM, Arnaldo Carvalho de Melo wrote:
> Em Tue, Jan 31, 2017 at 09:46:28AM -0300, Arnaldo Carvalho de Melo escreveu:
>> Also you are silently ignoring any unknown variable in this section, so
>> if someone has this:
>>
>> cat ~/.perfconfig
>>
>> [ftrace]
>>
>> 	trace = function
>>
>>
>> I.e. forgets the 'r', it will keep using the current default,
>> "function_graph" till the user checks the config and adds that missing
>> 'r'...
>>
>> I haven't changed this because I think this is so common that we should
>> instead have a different error return for those config callbacks that
>> will tell perf_config() to say something like:
>>
>>   "unknown variable %s.%s\n", section_name, variable_name
>
> So I read a bit more the config code and ended up with this:
>
> static int perf_ftrace_config(const char *var, const char *value, void *cb)
> {
>         struct perf_ftrace *ftrace = cb;
>
>         if (prefixcmp(var, "ftrace."))
>                 return 0;
>
>         if (strcmp(var, "ftrace.tracer"))
>                 return -1;
>
>         if (!strcmp(value, "function_graph") ||
>             !strcmp(value, "function")) {
>                 ftrace->tracer = value;
>                 return 0;
>         }
>
> 	pr_err("Please select \"function_graph\" (default) or \"function\"\n");
>         return -1;
> }
>
> I.e. it will ignore variables for other sections and will stop at an unknown
> variable or value for ftrace.tracer:
>
> [root@jouet ~]# cat ~/.perfconfig
> [ftrace]
> 	trace = function
> [root@jouet ~]# perf ftrace usleep 1
> Error: wrong config key-value pair ftrace.trace=function
> [root@jouet ~]# cat ~/.perfconfig
> [ftrace]
> 	tracer = functin
> [root@jouet ~]# perf ftrace usleep 1
> Please select "function_graph" (default) or "function"
> Error: wrong config key-value pair ftrace.tracer=functin
> [root@jouet ~]# cat ~/.perfconfig
> [ftrace]
> 	tracer = function
> [root@jouet ~]# perf ftrace usleep 1 | head -5
>           <idle>-0     [000] d...  3855.820847: switch_mm_irqs_off <-__schedule
>            <...>-18550 [000] d...  3855.820849: finish_task_switch <-__schedule
>            <...>-18550 [000] d...  3855.820851: smp_irq_work_interrupt <-irq_work_interrupt
>            <...>-18550 [000] d...  3855.820851: irq_enter <-smp_irq_work_interrupt
>            <...>-18550 [000] d...  3855.820851: rcu_irq_enter <-irq_enter
> [root@jouet ~]#
>

This is great!! I agonized about error message for
each other cases as above! But I think this is more precise than my patch!

Thanks,
Taeung

  reply	other threads:[~2017-02-01  7:27 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-31 11:38 [PATCH v2 0/4] Add ftrace config and refactor several parts Taeung Song
2017-01-31 11:38 ` [PATCH v2 1/4] perf tools: Create for_each_event macro for tracepoints iteration Taeung Song
2017-01-31 12:21   ` Arnaldo Carvalho de Melo
2017-01-31 12:23     ` Arnaldo Carvalho de Melo
2017-01-31 17:32       ` Steven Rostedt
2017-02-01  7:02     ` Taeung Song
2017-02-01 14:43   ` [tip:perf/core] " tip-bot for Taeung Song
2017-01-31 11:38 ` [PATCH v2 2/4] perf ftrace: Add ftrace.tracer config option Taeung Song
2017-01-31 12:46   ` Arnaldo Carvalho de Melo
2017-01-31 13:15     ` Arnaldo Carvalho de Melo
2017-02-01  7:27       ` Taeung Song [this message]
2017-02-01 14:43   ` [tip:perf/core] " tip-bot for Taeung Song
2017-01-31 11:38 ` [PATCH v2 3/4] perf tools: Check NULL after zalloc() and Use zfree() instead of free() in parse-events.c Taeung Song
2017-01-31 13:23   ` Arnaldo Carvalho de Melo
2017-02-01  8:04     ` Taeung Song
2017-01-31 11:38 ` [PATCH v2 4/4] perf tools: Increase index if perf_evsel__new_idx() succeeded Taeung Song
2017-01-31 13:25   ` Arnaldo Carvalho de Melo
2017-02-01  8:04     ` Taeung Song

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=3a8d93cb-e988-cdf8-b5a7-eee48096202c@gmail.com \
    --to=treeze.taeung@gmail.com \
    --cc=arnaldo.melo@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=wangnan0@huawei.com \
    /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

Powered by JetHome