[PATCH v13 00/22] perf config: Add functionalities into perf-config and document config info

From: Taeung Song
Date: Fri Jan 08 2016 - 06:40:04 EST


Add options (user, system, list-all, skel, verbose, remove) and
getting and setting features into perf-config subcommand to more useful.
And document perf config informations for each section.

Changes in v13:
- Add record.build-id config info to perf-config doc [Namhyung]
- Fill missing options info ('verbose', 'skel') on perf-config doc

Changes in v12:
- Modify perf-config documentation for each section to be more proper
and correct small typing errors [Namhyung]
- Add missing config variables that are group, show_linenr and
show_total_period [Namhyung]

Changes in v11:
- Add --skel option to produce an skeleton with the possible config
variables [Arnaldo]
- Add exception handling to --list option when nothing configured [Arnaldo]
- Default action without option is to show an usage message [Arnaldo]

Changes in v10:
- Split perf-config.txt into several patches for each section and replace some
paragraphes with better proper things [Arnaldo, Namhyung]
- Correct wrong default values for each variable [Namhyung]
- Remove the compare name function

Changes in v9:
- Add the compare name functionality treating '-' and '-' as being
the same thing for usability

Changes in v8:
- Correct small typing errors in a perf-config documention
- Split the collecting configs part into a separate patch
- Use new enum and struct for default configs instead of
hard-coded value [Namhyung]

Changes in v7:
- Modify explanations of syntax and options(color, gtk, tui, buildid, annotate)
to be better proper descriptions [Arnaldo]

Changes in v6:
- Split a 'set' feature patch into two patch to separate normalize_value() from it
- Bug fix : 'remove' and 'set' malfunctions when without a specific file-option
(If file-option isn't used, 'remove' feature had to use both user and system
config file and 'set' feature had to only handle user config file.)

Changes in v5:
- Simplify the switch statement in cmd_config()
- Set a config file path with '--system' or '--user'
instead of '--global' or '--system' [Namhyung]
- The patch about 'get' and 'set 'split into two patchs [Namhyung]

Changes in v4:
- If some config value is default value, notice it is '(default)' [Jirka]
- If there wasn't any perfconfig file, perf-config malfunctioned
So add exception routine with '--global' and '--system'
option which can select perf config file path [Jirka]

Changes in v3:
- Add a config variable 'kmem.default' with a default value [Namhyung]

Changes in v2:
- Change option name of listing all configs as '--list-all'
instead of '--all' [Namhyung]
- Correct small infelicities or typing errors in a perf-config documention [Arnaldo]
- Declaration a global variable 'static struct default_configsets' has config
variables with default values instead of using a 'util/PERFCONFIG-DEFAULT' file.
- Add a function to normalize a value and check data type of it.
- Simplify parsing arguments as arguments is just divided by '=' and then
in front of '.' is a section, between '.' and '=' is a name,
and behind '=' is a value.
- If run perf-config command without any option, perf-config work as '--list'.

Taeung Song (23):
perf config: Document variables for 'colors' section in man page
perf config: Document variables for 'tui' and 'gtk' sections in man
page
perf config: Document 'buildid.dir' variable in man page
perf config: Document variables for 'annotate' section in man page
perf config: Document variables for 'help' section in man page
perf config: Document 'hist.percentage' variable in man page
perf config: Document 'ui.show-headers' variable in man page
perf config: Document variables for 'call-graph' section in man page
perf config: Document variables for 'report' section in man page
perf config: Document 'top.children' variable in man page
perf config: Document 'man.viewer' variable in man page
perf config: Document 'pager.<subcommand>' variables in man page
perf config: Document 'kmem.default' variable in man page
perf config: Document 'record.build-id' variable in man page
perf config: Add '--system' and '--user' options to select which
config file is used
perf config: Collect configs to handle config variables
perf config: Add 'list-all' option to perf-config
perf config: Add a option 'skel' to perf-config
perf config: Add --verbose option for showing config description
perf config: Add 'get' functionality
perf config: Add 'set' feature
perf config: normalize a value depending on default type of it
perf config: Add a option 'remove' to perf-config

tools/perf/Documentation/perf-config.txt | 380 ++++++++++++++++-
tools/perf/builtin-config.c | 709 ++++++++++++++++++++++++++++++-
tools/perf/util/cache.h | 20 +
tools/perf/util/config.c | 31 +-
4 files changed, 1126 insertions(+), 14 deletions(-)

--
2.5.0