All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Taeung Song <treeze.taeung@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>, Jiri Olsa <jolsa@redhat.com>,
	Ingo Molnar <mingo@redhat.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	David Ahern <dsahern@gmail.com>
Subject: Re: [PATCH v9 1/7] perf config: Introduce default_config_section and default_config_item for default config key-value pairs
Date: Tue, 29 Nov 2016 13:05:38 -0300	[thread overview]
Message-ID: <20161129160538.GB23423@kernel.org> (raw)
In-Reply-To: <1480323078-15623-2-git-send-email-treeze.taeung@gmail.com>

Em Mon, Nov 28, 2016 at 05:51:12PM +0900, Taeung Song escreveu:
> When initializing default perf config values,
> we currently use values of actual type(int, bool, char *, etc.).
> 
> For example,
> If there isn't a user config value for 'annotate.use_offset'
> config variable at ~/.perfconfig,
> default value for it is 'true' bool type value in perf like below.
> 
> At ui/browsers/annoate.c
> 
> static struct annotate_browser_opt {
>         bool hide_src_code,
>              use_offset,
>              jump_arrows,
>              show_linenr,
>              show_nr_jumps,
>              show_total_period;
> } annotate_browser__opts = {
>         .use_offset      = true,
>         .jump_arrows     = true,
> };

And isn't this a good thing? I.e. its compact, we have just to set
values to things that are !0 (or !false), and it is close to the code
where it is used.
 
> But I suggest using 'struct default_config_section' and
> 'struct default_config_item' that can contain default config key-value pairs
> in order to initialize default config values with them, in near future.

 
> If we do, we could manage default perf config values at one spot (i.e. util/config.c)
> with default config arrays and it could be easy and simple to modify
> existing default config values or add default values for new config item.
> 
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Cc: Wang Nan <wangnan0@huawei.com>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Masami Hiramatsu <mhiramat@kernel.org>
> Cc: David Ahern <dsahern@gmail.com>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> ---
>  tools/perf/util/config.h | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/tools/perf/util/config.h b/tools/perf/util/config.h
> index 1a59a6b..434d71c 100644
> --- a/tools/perf/util/config.h
> +++ b/tools/perf/util/config.h
> @@ -67,4 +67,33 @@ void perf_config__refresh(void);
>  	perf_config_sections__for_each_entry(&set->sections, section)		\
>  	perf_config_items__for_each_entry(&section->items, item)
>  
> +enum perf_config_type {
> +	CONFIG_TYPE_BOOL,
> +	CONFIG_TYPE_INT,
> +	CONFIG_TYPE_LONG,
> +	CONFIG_TYPE_U64,
> +	CONFIG_TYPE_FLOAT,
> +	CONFIG_TYPE_DOUBLE,
> +	CONFIG_TYPE_STRING
> +};
> +
> +struct default_config_item {
> +	const char *name;
> +	union {
> +		bool b;
> +		int i;
> +		u32 l;
> +		u64 ll;
> +		float f;
> +		double d;
> +		const char *s;
> +	} value;
> +	enum perf_config_type type;
> +};
> +
> +struct default_config_section {
> +	const char *name;
> +	const struct default_config_item *items;
> +};
> +
>  #endif /* __PERF_CONFIG_H */
> -- 
> 2.7.4

  reply	other threads:[~2016-11-29 16:05 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-28  8:51 [PATCH v9 0/7] perf config: Introduce default config key-value pairs arrays Taeung Song
2016-11-28  8:51 ` [PATCH v9 1/7] perf config: Introduce default_config_section and default_config_item for default config key-value pairs Taeung Song
2016-11-29 16:05   ` Arnaldo Carvalho de Melo [this message]
2016-11-29 17:21     ` Taeung Song
2016-11-28  8:51 ` [PATCH v9 2/7] perf config: Add macros assigning key-value pairs to default_config_item Taeung Song
2016-11-28  8:51 ` [PATCH v9 3/7] perf config: Add default section and item arrays for 'colors' config Taeung Song
2016-11-28  8:51 ` [PATCH v9 4/7] perf config: Use combined {fore,back}ground colors value instead of each two color Taeung Song
2016-11-28  8:51 ` [PATCH v9 5/7] perf config: Initialize ui_browser__colorsets with default config items Taeung Song
2016-11-28  8:51 ` [PATCH v9 6/7] perf config: Add default section and item arrays for 'annotate' config Taeung Song
2016-11-28  8:51 ` [PATCH v9 7/7] perf config: Initialize annotate_browser__opts with default config items 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=20161129160538.GB23423@kernel.org \
    --to=acme@kernel.org \
    --cc=dsahern@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=treeze.taeung@gmail.com \
    --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 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.