Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1271526 > unrolled thread
| Started by | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| First post | 2015-11-17 19:40 +0100 |
| Last post | 2015-11-26 09:30 +0100 |
| Articles | 20 on this page of 46 — 6 participants |
Back to article view | Back to linux.kernel
[PATCH v11 01/24] perf tools: Add 'perf-config' command Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
[PATCH v11 22/24] perf config: Add 'set' feature Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
[PATCH v11 14/24] perf config: Document 'pager.<subcommand>' variables in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 14/24] perf config: Document 'pager.<subcommand>' variables in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 06:10 +0100
[PATCH v11 19/24] perf config: Add a option 'skel' to perf-config Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
[PATCH v11 13/24] perf config: Document 'man.viewer' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 13/24] perf config: Document 'man.viewer' variable in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 06:00 +0100
[PATCH v11 07/24] perf config: Document variables for 'help' section in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 07/24] perf config: Document variables for 'help' section in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 01:50 +0100
[PATCH v11 08/24] perf config: Document 'hist.percentage' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 08/24] perf config: Document 'hist.percentage' variable in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 02:00 +0100
[PATCH v11 18/24] perf config: Add 'list-all' option to perf-config Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
[PATCH v11 17/24] perf config: Collect configs to handle config variables Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 17/24] perf config: Collect configs to handle config variables Namhyung Kim <namhyung@kernel.org> - 2015-11-18 06:20 +0100
[PATCH v11 16/24] perf config: Add '--system' and '--user' options to select which config file is used Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 16/24] perf config: Add '--system' and '--user' options to select which config file is used Namhyung Kim <namhyung@kernel.org> - 2015-11-18 06:20 +0100
[PATCH v11 12/24] perf config: Document 'top.chidren' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 12/24] perf config: Document 'top.chidren' variable in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 04:10 +0100
[PATCH v11 11/24] perf config: Document variables for 'report' section in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 11/24] perf config: Document variables for 'report' section in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 04:10 +0100
[PATCH v11 24/24] perf config: Add a option 'remove' to perf-config Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
[PATCH v11 23/24] perf config: normalize a value depending on default type of it Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
[PATCH v11 04/24] perf config: Document variables for 'tui' and 'gtk' sections in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 04/24] perf config: Document variables for 'tui' and 'gtk' sections in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 01:10 +0100
[PATCH v11 06/24] perf config: Document variables for 'annotate' section in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 06/24] perf config: Document variables for 'annotate' section in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 01:30 +0100
[PATCH v11 10/24] perf config: Document variables for 'call-graph' section in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
Re: [PATCH v11 10/24] perf config: Document variables for 'call-graph' section in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 04:00 +0100
Re: [PATCH v11 10/24] perf config: Document variables for 'call-graph' section in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-30 02:50 +0100
Re: [PATCH v11 10/24] perf config: Document variables for 'call-graph' section in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-30 06:10 +0100
[PATCH v11 20/24] perf config: Add --verbose option for showing config description Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:40 +0100
[PATCH v11 03/24] perf config: Document variables for 'color' section in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:50 +0100
Re: [PATCH v11 03/24] perf config: Document variables for 'color' section in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 00:50 +0100
[PATCH v11 02/24] perf tools: Add perf-config document Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:50 +0100
Re: [PATCH v11 02/24] perf tools: Add perf-config document Namhyung Kim <namhyung@kernel.org> - 2015-11-18 00:20 +0100
Re: [PATCH v11 02/24] perf tools: Add perf-config document Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 20:30 +0100
[PATCH v11 RESEND 02/24] perf tools: Add perf-config document Taeung Song <treeze.taeung@gmail.com> - 2015-11-22 11:20 +0100
Re: [PATCH v11 RESEND 02/24] perf tools: Add perf-config document Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> - 2015-11-23 15:20 +0100
[tip:perf/core] perf config: Add initial man page tip-bot for Taeung Song <tipbot@zytor.com> - 2015-11-26 09:30 +0100
Re: [PATCH v11 02/24] perf tools: Add perf-config document Taeung Song <treeze.taeung@gmail.com> - 2015-11-22 11:20 +0100
[PATCH v11 09/24] perf config: Document 'ui.show-headers' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:50 +0100
Re: [PATCH v11 09/24] perf config: Document 'ui.show-headers' variable in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 02:10 +0100
[PATCH v11 05/24] perf config: Document 'buildid.dir' variable in man page Taeung Song <treeze.taeung@gmail.com> - 2015-11-17 19:50 +0100
Re: [PATCH v11 05/24] perf config: Document 'buildid.dir' variable in man page Namhyung Kim <namhyung@kernel.org> - 2015-11-18 01:10 +0100
Re: [PATCH v11 01/24] perf tools: Add 'perf-config' command Namhyung Kim <namhyung@gmail.com> - 2015-11-17 23:40 +0100
[tip:perf/core] perf tools: Add 'perf config' command tip-bot for Taeung Song <tipbot@zytor.com> - 2015-11-26 09:30 +0100
Page 2 of 3 — ← Prev page 1 [2] 3 Next page →
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-17 19:40 +0100 |
| Subject | [PATCH v11 24/24] perf config: Add a option 'remove' to perf-config |
| Message-ID | <qvTkE-f2-69@gated-at.bofh.it> |
| In reply to | #1271526 |
A option 'remove' is to remove specific config variables.
For the syntax examples,
# perf config [<file-option>] -r | --remove [section.name ...]
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
tools/perf/Documentation/perf-config.txt | 6 ++++++
tools/perf/builtin-config.c | 37 ++++++++++++++++++++++++++++++--
2 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt
index 9892d11..7b33d96 100644
--- a/tools/perf/Documentation/perf-config.txt
+++ b/tools/perf/Documentation/perf-config.txt
@@ -13,6 +13,8 @@ or
'perf config' [<file-option>] -l | --list
or
'perf config' [<file-option>] -a | --list-all
+or
+'perf config' [<file-option>] -r | --remove [section.name ...]
DESCRIPTION
-----------
@@ -37,6 +39,10 @@ OPTIONS
--list-all::
Show current and all possible config variables with default values.
+-r::
+--remove::
+ Remove specific config variables.
+
CONFIGURATION FILE
------------------
diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
index cf65250..53fe844 100644
--- a/tools/perf/builtin-config.c
+++ b/tools/perf/builtin-config.c
@@ -23,7 +23,8 @@ static const char * const config_usage[] = {
enum actions {
ACTION_LIST = 1,
ACTION_LIST_ALL,
- ACTION_SKEL
+ ACTION_SKEL,
+ ACTION_REMOVE
} actions;
static struct option config_options[] = {
@@ -35,6 +36,8 @@ static struct option config_options[] = {
OPT_SET_UINT('k', "skel", &actions,
"produce an skeleton with the possible"
" config variables", ACTION_SKEL),
+ OPT_SET_UINT('r', "remove", &actions,
+ "remove specific variables: [section.name ...]", ACTION_REMOVE),
OPT_INCR('v', "verbose", &verbose, "Be more verbose"
" (show config description)"),
OPT_BOOLEAN(0, "system", &use_system_config, "use system config file"),
@@ -478,7 +481,13 @@ static int set_config(struct list_head *sections, const char *config_file_name,
struct config_element *element = NULL;
find_config(sections, §ion, &element, section_name, name);
- if (value != NULL) {
+ if (!value) {
+ /* value == NULL means remove the variable */
+ if (section && element) {
+ free(element->value);
+ element->value = NULL;
+ }
+ } else {
value = normalize_value(section_name, name, value);
/* if there isn't existent section, add a new section */
@@ -629,6 +638,7 @@ int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused)
set_option_flag(config_options, 'l', "list", PARSE_OPT_EXCLUSIVE);
set_option_flag(config_options, 'a', "list-all", PARSE_OPT_EXCLUSIVE);
+ set_option_flag(config_options, 'r', "remove", PARSE_OPT_EXCLUSIVE);
argc = parse_options(argc, argv, config_options, config_usage,
PARSE_OPT_STOP_AT_NON_OPTION);
@@ -658,6 +668,29 @@ int cmd_config(int argc, const char **argv, const char *prefix __maybe_unused)
}
switch (actions) {
+ case ACTION_REMOVE:
+ if (argc) {
+ for (i = 0; argv[i]; i++) {
+ if (!use_system_config && !use_user_config) {
+ ret = perf_configset_with_option(set_config,
+ &system_sections,
+ system_config,
+ argv[i], NULL);
+ ret = perf_configset_with_option(set_config,
+ &user_sections,
+ user_config,
+ argv[i], NULL);
+ } else
+ ret = perf_configset_with_option(set_config, sections,
+ config_exclusive_filename,
+ argv[i], NULL);
+ }
+ } else {
+ pr_err("Error: Missing arguments\n");
+ parse_options_usage(config_usage, config_options, "r", 1);
+ return -1;
+ }
+ break;
case ACTION_SKEL:
if (argc)
parse_options_usage(config_usage, config_options, "k", 1);
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-17 19:40 +0100 |
| Subject | [PATCH v11 23/24] perf config: normalize a value depending on default type of it |
| Message-ID | <qvTkD-f2-49@gated-at.bofh.it> |
| In reply to | #1271526 |
Whether or not user mis-type wrong data type to set config,
normalize the value. If a config user enter isn't contained
in default configs, just pass as it is.
For the examples,
# perf config report.queue-size=1M
# perf config report.queue-size
report.queue-size=1048576
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
tools/perf/builtin-config.c | 54 ++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 49 insertions(+), 5 deletions(-)
diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
index 59d7842..cf65250 100644
--- a/tools/perf/builtin-config.c
+++ b/tools/perf/builtin-config.c
@@ -423,6 +423,54 @@ static int show_spec_config(struct list_head *sections,
return -1;
}
+static char *normalize_value(const char *section_name, const char *name, const char *value)
+{
+ int i, ret = 0;
+ char *endptr;
+ char key[BUFSIZ];
+ char *normalized;
+
+ scnprintf(key, sizeof(key), "%s.%s", section_name, name);
+ for (i = 0; default_configs[i].type != CONFIG_END; i++) {
+ struct config_item *config = &default_configs[i];
+
+ if (!strcmp(config->section, section_name) &&
+ !strcmp(config->name, name)) {
+ if (config->type == CONFIG_TYPE_BOOL)
+ ret = asprintf(&normalized, "%s",
+ perf_config_bool(key, value) ? "true" : "false");
+ else if (config->type == CONFIG_TYPE_INT ||
+ config->type == CONFIG_TYPE_LONG)
+ ret = asprintf(&normalized, "%d",
+ perf_config_int(key, value));
+ else if (config->type == CONFIG_TYPE_U64)
+ ret = asprintf(&normalized, "%"PRId64,
+ perf_config_u64(key, value));
+ else if (config->type == CONFIG_TYPE_FLOAT)
+ ret = asprintf(&normalized, "%f",
+ strtof(value, &endptr));
+ else if (config->type == CONFIG_TYPE_DOUBLE)
+ ret = asprintf(&normalized, "%f",
+ strtod(value, &endptr));
+ else
+ ret = asprintf(&normalized, "%s", value);
+
+ if (ret < 0)
+ return NULL;
+
+ return normalized;
+ }
+ }
+
+ normalized = strdup(value);
+ if (!normalized) {
+ pr_err("%s: strdup failed\n", __func__);
+ return NULL;
+ }
+
+ return normalized;
+}
+
static int set_config(struct list_head *sections, const char *config_file_name,
const char *section_name, const char *name, char *value)
{
@@ -431,11 +479,7 @@ static int set_config(struct list_head *sections, const char *config_file_name,
find_config(sections, §ion, &element, section_name, name);
if (value != NULL) {
- value = strdup(value);
- if (!value) {
- pr_err("%s: strdup failed\n", __func__);
- return -1;
- }
+ value = normalize_value(section_name, name, value);
/* if there isn't existent section, add a new section */
if (!section) {
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-17 19:40 +0100 |
| Subject | [PATCH v11 04/24] perf config: Document variables for 'tui' and 'gtk' sections in man page |
| Message-ID | <qvTkD-f2-53@gated-at.bofh.it> |
| In reply to | #1271526 |
Explain 'tui' and 'gtk' sections and these variables. 'top', 'report' and 'annotate' Cc: Namhyung Kim <namhyung@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> --- tools/perf/Documentation/perf-config.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt index 84a982b..ec30229 100644 --- a/tools/perf/Documentation/perf-config.txt +++ b/tools/perf/Documentation/perf-config.txt @@ -142,6 +142,15 @@ colors.*:: Colors for headers in the output of a sub-command 'top'. Default values are 'white', 'blue'. +tui.*, gtk.*:: + Available subcommands are 'top', 'report' and 'annotate'. + These values are a boolean type, for example: + + top = true + + By setting value, TUI or GTK can be enabled or not. But it is needed + that perf detects the required library for them during build. + SEE ALSO -------- linkperf:perf[1] -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Namhyung Kim <namhyung@kernel.org> |
|---|---|
| Date | 2015-11-18 01:10 +0100 |
| Subject | Re: [PATCH v11 04/24] perf config: Document variables for 'tui' and 'gtk' sections in man page |
| Message-ID | <qvYtY-3GN-15@gated-at.bofh.it> |
| In reply to | #1271549 |
On Tue, Nov 17, 2015 at 10:53:24PM +0900, Taeung Song wrote: > Explain 'tui' and 'gtk' sections and these variables. > > 'top', 'report' and 'annotate' > > Cc: Jiri Olsa <jolsa@redhat.com> > Signed-off-by: Taeung Song <treeze.taeung@gmail.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Thanks, Namhyung > --- > tools/perf/Documentation/perf-config.txt | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt > index 84a982b..ec30229 100644 > --- a/tools/perf/Documentation/perf-config.txt > +++ b/tools/perf/Documentation/perf-config.txt > @@ -142,6 +142,15 @@ colors.*:: > Colors for headers in the output of a sub-command 'top'. > Default values are 'white', 'blue'. > > +tui.*, gtk.*:: > + Available subcommands are 'top', 'report' and 'annotate'. > + These values are a boolean type, for example: > + > + top = true > + > + By setting value, TUI or GTK can be enabled or not. But it is needed > + that perf detects the required library for them during build. > + > SEE ALSO > -------- > linkperf:perf[1] > -- > 1.9.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-17 19:40 +0100 |
| Subject | [PATCH v11 06/24] perf config: Document variables for 'annotate' section in man page |
| Message-ID | <qvTkE-f2-57@gated-at.bofh.it> |
| In reply to | #1271526 |
Explain 'annotate' section and its variables.
'hide_src_code', 'use_offset', 'jump_arrows' and 'show_nr_jumps'.
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
tools/perf/Documentation/perf-config.txt | 76 ++++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt
index b4ee205..bfbeb34 100644
--- a/tools/perf/Documentation/perf-config.txt
+++ b/tools/perf/Documentation/perf-config.txt
@@ -166,6 +166,82 @@ buildid.*::
cache location, or to disable it altogether. If you want to disable it,
set buildid.dir to /dev/null. The default is $HOME/.debug
+annotate.*::
+ There're options which work with a 'annotate' sub-command.
+ These are in control of addresses, jump function, source code
+ in lines of assembly code from a specific program.
+
+ annotate.hide_src_code::
+ If a program which is analyzed has source code,
+ this option lets 'annotate' print a list of assembly code with the source code.
+ For example, let's see a part of a program. There're four lines.
+ If this option is 'true', they can be printed
+ without source code from a program as below.
+
+ │ push %rbp
+ │ mov %rsp,%rbp
+ │ sub $0x10,%rsp
+ │ mov (%rdi),%rdx
+
+ But if this option is 'false', source code of the part
+ can be also printed as below.
+
+ │ struct rb_node *rb_next(const struct rb_node *node)
+ │ {
+ │ push %rbp
+ │ mov %rsp,%rbp
+ │ sub $0x10,%rsp
+ │ struct rb_node *parent;
+ │
+ │ if (RB_EMPTY_NODE(node))
+ │ mov (%rdi),%rdx
+ │ return n;
+
+ annotate.use_offset::
+ Basing on a first address of a loaded function, offset can be used.
+ Instead of using original addresses of assembly code,
+ addresses subtracted from a base address can be printed.
+ Let's illustrate a example.
+ If a base address is 0XFFFFFFFF81624d50 as below,
+
+ ffffffff81624d50 <load0>
+
+ a address on assembly code has a specific absolute address as below
+
+ ffffffff816250b8:│ mov 0x8(%r14),%rdi
+
+ but if use_offset is 'true', a address subtracted from a base address is printed.
+ The default is true. This option is only applied to TUI.
+
+ 368:│ mov 0x8(%r14),%rdi
+
+ annotate.jump_arrows::
+ There can be jump instruction among assembly code.
+ Depending on a boolean value of jump_arrows,
+ arrows can be printed or not which represent
+ where do the instruction jump into as below.
+
+ │ ┌──jmp 1333
+ │ │ xchg %ax,%ax
+ │1330:│ mov %r15,%r10
+ │1333:└─→cmp %r15,%r14
+
+ If jump_arrow is 'false', the arrows isn't printed as below.
+
+ │ ↓ jmp 1333
+ │ xchg %ax,%ax
+ │1330: mov %r15,%r10
+ │1333: cmp %r15,%r14
+
+ annotate.show_nr_jumps::
+ Let's see a part of assembly code.
+
+ │1382: movb $0x1,-0x270(%rbp)
+
+ If use this, the number of branches branching to that address can be printed as below.
+
+ │1 1382: movb $0x1,-0x270(%rbp)
+
SEE ALSO
--------
linkperf:perf[1]
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Namhyung Kim <namhyung@kernel.org> |
|---|---|
| Date | 2015-11-18 01:30 +0100 |
| Subject | Re: [PATCH v11 06/24] perf config: Document variables for 'annotate' section in man page |
| Message-ID | <qvYNk-3Of-27@gated-at.bofh.it> |
| In reply to | #1271550 |
On Tue, Nov 17, 2015 at 10:53:26PM +0900, Taeung Song wrote:
> Explain 'annotate' section and its variables.
>
> 'hide_src_code', 'use_offset', 'jump_arrows' and 'show_nr_jumps'.
The 'show_linenr' and 'show_total_period' are missing. Also you'd
better to mention the default values for each option.
And some nitpicks below..
>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> ---
> tools/perf/Documentation/perf-config.txt | 76 ++++++++++++++++++++++++++++++++
> 1 file changed, 76 insertions(+)
>
> diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt
> index b4ee205..bfbeb34 100644
> --- a/tools/perf/Documentation/perf-config.txt
> +++ b/tools/perf/Documentation/perf-config.txt
> @@ -166,6 +166,82 @@ buildid.*::
> cache location, or to disable it altogether. If you want to disable it,
> set buildid.dir to /dev/null. The default is $HOME/.debug
>
> +annotate.*::
> + There're options which work with a 'annotate' sub-command.
AFAIK these options work only for TUI.
> + These are in control of addresses, jump function, source code
> + in lines of assembly code from a specific program.
> +
> + annotate.hide_src_code::
> + If a program which is analyzed has source code,
> + this option lets 'annotate' print a list of assembly code with the source code.
> + For example, let's see a part of a program. There're four lines.
> + If this option is 'true', they can be printed
> + without source code from a program as below.
> +
> + │ push %rbp
> + │ mov %rsp,%rbp
> + │ sub $0x10,%rsp
> + │ mov (%rdi),%rdx
> +
> + But if this option is 'false', source code of the part
> + can be also printed as below.
> +
> + │ struct rb_node *rb_next(const struct rb_node *node)
> + │ {
> + │ push %rbp
> + │ mov %rsp,%rbp
> + │ sub $0x10,%rsp
> + │ struct rb_node *parent;
> + │
> + │ if (RB_EMPTY_NODE(node))
> + │ mov (%rdi),%rdx
> + │ return n;
> +
> + annotate.use_offset::
> + Basing on a first address of a loaded function, offset can be used.
> + Instead of using original addresses of assembly code,
> + addresses subtracted from a base address can be printed.
> + Let's illustrate a example.
s/a example/an example/
> + If a base address is 0XFFFFFFFF81624d50 as below,
> +
> + ffffffff81624d50 <load0>
> +
> + a address on assembly code has a specific absolute address as below
s/a address/an address/
> +
> + ffffffff816250b8:│ mov 0x8(%r14),%rdi
> +
> + but if use_offset is 'true', a address subtracted from a base address is printed.
Ditto.
> + The default is true. This option is only applied to TUI.
> +
> + 368:│ mov 0x8(%r14),%rdi
> +
> + annotate.jump_arrows::
> + There can be jump instruction among assembly code.
> + Depending on a boolean value of jump_arrows,
> + arrows can be printed or not which represent
> + where do the instruction jump into as below.
> +
> + │ ┌──jmp 1333
> + │ │ xchg %ax,%ax
> + │1330:│ mov %r15,%r10
> + │1333:└─→cmp %r15,%r14
> +
> + If jump_arrow is 'false', the arrows isn't printed as below.
> +
> + │ ↓ jmp 1333
> + │ xchg %ax,%ax
> + │1330: mov %r15,%r10
> + │1333: cmp %r15,%r14
> +
> + annotate.show_nr_jumps::
> + Let's see a part of assembly code.
> +
> + │1382: movb $0x1,-0x270(%rbp)
> +
> + If use this, the number of branches branching to that address can be printed as below.
I think it'd be better to avoid using similar words in a row.
How about "number of branches jumping to that address" instead?
Thanks,
Namhyung
> +
> + │1 1382: movb $0x1,-0x270(%rbp)
> +
> SEE ALSO
> --------
> linkperf:perf[1]
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-17 19:40 +0100 |
| Subject | [PATCH v11 10/24] perf config: Document variables for 'call-graph' section in man page |
| Message-ID | <qvTkE-f2-67@gated-at.bofh.it> |
| In reply to | #1271526 |
Explain 'call-graph' section and its variables. 'record-mode', 'dump-size', 'print-type', 'order', 'sort-key', 'threshold' and 'print-limit'. Cc: Namhyung Kim <namhyung@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> --- tools/perf/Documentation/perf-config.txt | 65 ++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt index 7d386d4..dc659d6 100644 --- a/tools/perf/Documentation/perf-config.txt +++ b/tools/perf/Documentation/perf-config.txt @@ -285,6 +285,71 @@ ui.*:: There're columns as header 'Overhead', 'Children', 'Shared Object', 'Symbol', 'self'. If this option is false, they are hiden. This option is only applied to TUI. +call-graph.*:: + When sub-commands 'top' and 'report' work with -g/—-children + there're options in control of call-graph. + + call-graph.record-mode:: + The record-mode can be 'fp' (frame pointer) and 'dwarf'. + The value of 'dwarf' is effective only if perf detect needed library + (libunwind or a recent version of libdw). Also it doesn't *require* + the dump-size option since it can use the default value of 8192 if + missing. + + call-graph.dump-size:: + The size of stack to dump in order to do post-unwinding. Default is 8192 (byte). + When using dwarf into record-mode this option should have a value. + + call-graph.print-type:: + The print-types can be graph (graph absolute), fractal (graph relative), flat. + This option controls a way to show overhead for each callchain entry. + Suppose a following example. + + Overhead Symbols + ........ ....... + 40.00% foo + | + --- foo + | + |--50.00%-- bar + | main + | + --50.00%-- baz + main + + This output is a 'fractal' format. The 'foo' came from 'bar' and 'baz' exactly + half and half so 'fractal' shows 50.00% for each + (meaning that it assumes 100% total overhead of 'foo'). + + The 'graph' uses absolute overhead value of 'foo' as total so each of + 'bar' and 'baz' callchain will have 20.00% of overhead. + + call-graph.order:: + This option controls print order of callchains. The default is + 'callee' which means callee is printed at top and then followed by its + caller and so on. The 'caller' prints it in reverse order. + + If this option is not set and report.children or top.children is + set to true (or the equivalent command line option is given), + the default value of this option is changed to 'caller' for the + execution of 'perf report' or 'perf top'. Other commands will + still default to 'callee'. + + call-graph.sort-key:: + The callchains are merged if they contain same information. + The sort-key option determines a way to compare the callchains. + A value of 'sort-key' can be 'function' or 'address'. + The default is 'function'. + + call-graph.threshold:: + When there're many callchains it'd print tons of lines. So perf omits + small callchains under a certain overhead (threshold) and this option + control the threashold. Default is 0.5 (%). + + call-graph.print-limit:: + This is another way to control the number of callchains printed for a + single entry. Default is 0 which means no limitation. + SEE ALSO -------- linkperf:perf[1] -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Namhyung Kim <namhyung@kernel.org> |
|---|---|
| Date | 2015-11-18 04:00 +0100 |
| Subject | Re: [PATCH v11 10/24] perf config: Document variables for 'call-graph' section in man page |
| Message-ID | <qw18t-59k-1@gated-at.bofh.it> |
| In reply to | #1271551 |
On Tue, Nov 17, 2015 at 10:53:30PM +0900, Taeung Song wrote:
> Explain 'call-graph' section and its variables.
>
> 'record-mode', 'dump-size', 'print-type', 'order',
> 'sort-key', 'threshold' and 'print-limit'.
>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Jiri Olsa <jolsa@redhat.com>
> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> ---
> tools/perf/Documentation/perf-config.txt | 65 ++++++++++++++++++++++++++++++++
> 1 file changed, 65 insertions(+)
>
> diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt
> index 7d386d4..dc659d6 100644
> --- a/tools/perf/Documentation/perf-config.txt
> +++ b/tools/perf/Documentation/perf-config.txt
> @@ -285,6 +285,71 @@ ui.*::
> There're columns as header 'Overhead', 'Children', 'Shared Object', 'Symbol', 'self'.
> If this option is false, they are hiden. This option is only applied to TUI.
>
> +call-graph.*::
> + When sub-commands 'top' and 'report' work with -g/—-children
> + there're options in control of call-graph.
> +
> + call-graph.record-mode::
> + The record-mode can be 'fp' (frame pointer) and 'dwarf'.
Also 'lbr' can be used, but it only work for recent intel cpus.
> + The value of 'dwarf' is effective only if perf detect needed library
> + (libunwind or a recent version of libdw). Also it doesn't *require*
> + the dump-size option since it can use the default value of 8192 if
> + missing.
I think the last sentence can be omitted.
> +
> + call-graph.dump-size::
> + The size of stack to dump in order to do post-unwinding. Default is 8192 (byte).
> + When using dwarf into record-mode this option should have a value.
This contradicts the above, it'll use the default size if omitted.
> +
> + call-graph.print-type::
> + The print-types can be graph (graph absolute), fractal (graph relative), flat.
> + This option controls a way to show overhead for each callchain entry.
> + Suppose a following example.
> +
> + Overhead Symbols
> + ........ .......
> + 40.00% foo
> + |
> + --- foo
> + |
> + |--50.00%-- bar
> + | main
> + |
> + --50.00%-- baz
> + main
^
it needs one more whitespace
> +
> + This output is a 'fractal' format. The 'foo' came from 'bar' and 'baz' exactly
> + half and half so 'fractal' shows 50.00% for each
> + (meaning that it assumes 100% total overhead of 'foo').
> +
> + The 'graph' uses absolute overhead value of 'foo' as total so each of
> + 'bar' and 'baz' callchain will have 20.00% of overhead.
> +
> + call-graph.order::
> + This option controls print order of callchains. The default is
> + 'callee' which means callee is printed at top and then followed by its
> + caller and so on. The 'caller' prints it in reverse order.
> +
> + If this option is not set and report.children or top.children is
> + set to true (or the equivalent command line option is given),
> + the default value of this option is changed to 'caller' for the
> + execution of 'perf report' or 'perf top'. Other commands will
> + still default to 'callee'.
> +
> + call-graph.sort-key::
> + The callchains are merged if they contain same information.
> + The sort-key option determines a way to compare the callchains.
> + A value of 'sort-key' can be 'function' or 'address'.
> + The default is 'function'.
> +
> + call-graph.threshold::
> + When there're many callchains it'd print tons of lines. So perf omits
> + small callchains under a certain overhead (threshold) and this option
> + control the threashold. Default is 0.5 (%).
s/threashold/threshold/
Also it'd be better to mention that the overhead is calculated by
value depends on call-graph.print-type.
> +
> + call-graph.print-limit::
> + This is another way to control the number of callchains printed for a
> + single entry. Default is 0 which means no limitation.
This is a maximum number of lines of callchain printed for a single
histogram entry.
Thanks,
Namhyung
> +
> SEE ALSO
> --------
> linkperf:perf[1]
> --
> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-30 02:50 +0100 |
| Subject | Re: [PATCH v11 10/24] perf config: Document variables for 'call-graph' section in man page |
| Message-ID | <qAlLj-5ll-5@gated-at.bofh.it> |
| In reply to | #1271820 |
Hi, Namhyung > On Nov 18, 2015, at 11:51 AM, Namhyung Kim <namhyung@kernel.org> wrote: > > On Tue, Nov 17, 2015 at 10:53:30PM +0900, Taeung Song wrote: >> Explain 'call-graph' section and its variables. >> >> 'record-mode', 'dump-size', 'print-type', 'order', >> 'sort-key', 'threshold' and 'print-limit'. >> >> Cc: Namhyung Kim <namhyung@kernel.org> >> Cc: Jiri Olsa <jolsa@redhat.com> >> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> >> --- >> tools/perf/Documentation/perf-config.txt | 65 ++++++++++++++++++++++++++++++++ >> 1 file changed, 65 insertions(+) >> >> diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt >> index 7d386d4..dc659d6 100644 >> --- a/tools/perf/Documentation/perf-config.txt >> +++ b/tools/perf/Documentation/perf-config.txt >> @@ -285,6 +285,71 @@ ui.*:: >> There're columns as header 'Overhead', 'Children', 'Shared Object', 'Symbol', 'self'. >> If this option is false, they are hiden. This option is only applied to TUI. >> >> +call-graph.*:: >> + When sub-commands 'top' and 'report' work with -g/—-children >> + there're options in control of call-graph. >> + >> + call-graph.record-mode:: >> + The record-mode can be 'fp' (frame pointer) and 'dwarf'. > > Also 'lbr' can be used, but it only work for recent intel cpus. > > >> + The value of 'dwarf' is effective only if perf detect needed library >> + (libunwind or a recent version of libdw). Also it doesn't *require* >> + the dump-size option since it can use the default value of 8192 if >> + missing. > > I think the last sentence can be omitted. > > >> + >> + call-graph.dump-size:: >> + The size of stack to dump in order to do post-unwinding. Default is 8192 (byte). >> + When using dwarf into record-mode this option should have a value. > > This contradicts the above, it'll use the default size if omitted. > > >> + >> + call-graph.print-type:: >> + The print-types can be graph (graph absolute), fractal (graph relative), flat. >> + This option controls a way to show overhead for each callchain entry. >> + Suppose a following example. >> + >> + Overhead Symbols >> + ........ ....... >> + 40.00% foo >> + | >> + --- foo >> + | >> + |--50.00%-- bar >> + | main >> + | >> + --50.00%-- baz >> + main > > ^ > it needs one more whitespace > I checked this patch file and whitespace and tab characters on it. But I think the lacking whitespace because of mail client. After 'make install’ I checked it but there is no lack of whitespace. Are there different problems that I missed ? Thanks, Taeung > >> + >> + This output is a 'fractal' format. The 'foo' came from 'bar' and 'baz' exactly >> + half and half so 'fractal' shows 50.00% for each >> + (meaning that it assumes 100% total overhead of 'foo'). >> + >> + The 'graph' uses absolute overhead value of 'foo' as total so each of >> + 'bar' and 'baz' callchain will have 20.00% of overhead. >> + >> + call-graph.order:: >> + This option controls print order of callchains. The default is >> + 'callee' which means callee is printed at top and then followed by its >> + caller and so on. The 'caller' prints it in reverse order. >> + >> + If this option is not set and report.children or top.children is >> + set to true (or the equivalent command line option is given), >> + the default value of this option is changed to 'caller' for the >> + execution of 'perf report' or 'perf top'. Other commands will >> + still default to 'callee'. >> + >> + call-graph.sort-key:: >> + The callchains are merged if they contain same information. >> + The sort-key option determines a way to compare the callchains. >> + A value of 'sort-key' can be 'function' or 'address'. >> + The default is 'function'. >> + >> + call-graph.threshold:: >> + When there're many callchains it'd print tons of lines. So perf omits >> + small callchains under a certain overhead (threshold) and this option >> + control the threashold. Default is 0.5 (%). > > s/threashold/threshold/ > > Also it'd be better to mention that the overhead is calculated by > value depends on call-graph.print-type. > > >> + >> + call-graph.print-limit:: >> + This is another way to control the number of callchains printed for a >> + single entry. Default is 0 which means no limitation. > > This is a maximum number of lines of callchain printed for a single > histogram entry. > > Thanks, > Namhyung > > >> + >> SEE ALSO >> -------- >> linkperf:perf[1] >> -- >> 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Namhyung Kim <namhyung@kernel.org> |
|---|---|
| Date | 2015-11-30 06:10 +0100 |
| Subject | Re: [PATCH v11 10/24] perf config: Document variables for 'call-graph' section in man page |
| Message-ID | <qAoSR-7Gx-3@gated-at.bofh.it> |
| In reply to | #1279492 |
On Mon, Nov 30, 2015 at 10:42:00AM +0900, Taeung Song wrote:
> Hi, Namhyung
Hi Taeung,
> > On Nov 18, 2015, at 11:51 AM, Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > On Tue, Nov 17, 2015 at 10:53:30PM +0900, Taeung Song wrote:
> >> Explain 'call-graph' section and its variables.
> >>
> >> 'record-mode', 'dump-size', 'print-type', 'order',
> >> 'sort-key', 'threshold' and 'print-limit'.
> >>
> >> Cc: Namhyung Kim <namhyung@kernel.org>
> >> Cc: Jiri Olsa <jolsa@redhat.com>
> >> Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
> >> ---
> >> tools/perf/Documentation/perf-config.txt | 65 ++++++++++++++++++++++++++++++++
> >> 1 file changed, 65 insertions(+)
> >>
> >> diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt
> >> index 7d386d4..dc659d6 100644
> >> --- a/tools/perf/Documentation/perf-config.txt
> >> +++ b/tools/perf/Documentation/perf-config.txt
> >> @@ -285,6 +285,71 @@ ui.*::
> >> There're columns as header 'Overhead', 'Children', 'Shared Object', 'Symbol', 'self'.
> >> If this option is false, they are hiden. This option is only applied to TUI.
> >>
> >> +call-graph.*::
> >> + When sub-commands 'top' and 'report' work with -g/—-children
> >> + there're options in control of call-graph.
> >> +
> >> + call-graph.record-mode::
> >> + The record-mode can be 'fp' (frame pointer) and 'dwarf'.
> >
> > Also 'lbr' can be used, but it only work for recent intel cpus.
> >
> >
> >> + The value of 'dwarf' is effective only if perf detect needed library
> >> + (libunwind or a recent version of libdw). Also it doesn't *require*
> >> + the dump-size option since it can use the default value of 8192 if
> >> + missing.
> >
> > I think the last sentence can be omitted.
> >
> >
> >> +
> >> + call-graph.dump-size::
> >> + The size of stack to dump in order to do post-unwinding. Default is 8192 (byte).
> >> + When using dwarf into record-mode this option should have a value.
> >
> > This contradicts the above, it'll use the default size if omitted.
> >
> >
> >> +
> >> + call-graph.print-type::
> >> + The print-types can be graph (graph absolute), fractal (graph relative), flat.
The 'folded' print type was added recently. Please update it too.
> >> + This option controls a way to show overhead for each callchain entry.
> >> + Suppose a following example.
> >> +
> >> + Overhead Symbols
> >> + ........ .......
> >> + 40.00% foo
> >> + |
> >> + --- foo
> >> + |
> >> + |--50.00%-- bar
> >> + | main
> >> + |
> >> + --50.00%-- baz
> >> + main
> >
> > ^
> > it needs one more whitespace
> >
>
> I checked this patch file and whitespace and tab characters on it.
> But I think the lacking whitespace because of mail client.
> After 'make install’ I checked it but there is no lack of whitespace.
> Are there different problems that I missed ?
I meant whitespace in the callchain graph (i.e. 'bar' and 'baz' should
be aligned). But I think I was wrong - it should look like below:
Overhead Symbols
........ .......
40.00% foo
|
---foo
|
|--50.00%--bar
| main
|
--50.00%--baz
main
Maybe it's because you used TAB characters for indent?
Thanks,
Namhyung
>
> >
> >> +
> >> + This output is a 'fractal' format. The 'foo' came from 'bar' and 'baz' exactly
> >> + half and half so 'fractal' shows 50.00% for each
> >> + (meaning that it assumes 100% total overhead of 'foo').
> >> +
> >> + The 'graph' uses absolute overhead value of 'foo' as total so each of
> >> + 'bar' and 'baz' callchain will have 20.00% of overhead.
> >> +
> >> + call-graph.order::
> >> + This option controls print order of callchains. The default is
> >> + 'callee' which means callee is printed at top and then followed by its
> >> + caller and so on. The 'caller' prints it in reverse order.
> >> +
> >> + If this option is not set and report.children or top.children is
> >> + set to true (or the equivalent command line option is given),
> >> + the default value of this option is changed to 'caller' for the
> >> + execution of 'perf report' or 'perf top'. Other commands will
> >> + still default to 'callee'.
> >> +
> >> + call-graph.sort-key::
> >> + The callchains are merged if they contain same information.
> >> + The sort-key option determines a way to compare the callchains.
> >> + A value of 'sort-key' can be 'function' or 'address'.
> >> + The default is 'function'.
> >> +
> >> + call-graph.threshold::
> >> + When there're many callchains it'd print tons of lines. So perf omits
> >> + small callchains under a certain overhead (threshold) and this option
> >> + control the threashold. Default is 0.5 (%).
> >
> > s/threashold/threshold/
> >
> > Also it'd be better to mention that the overhead is calculated by
> > value depends on call-graph.print-type.
> >
> >
> >> +
> >> + call-graph.print-limit::
> >> + This is another way to control the number of callchains printed for a
> >> + single entry. Default is 0 which means no limitation.
> >
> > This is a maximum number of lines of callchain printed for a single
> > histogram entry.
> >
> > Thanks,
> > Namhyung
> >
> >
> >> +
> >> SEE ALSO
> >> --------
> >> linkperf:perf[1]
> >> --
> >> 1.9.1
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-17 19:40 +0100 |
| Subject | [PATCH v11 20/24] perf config: Add --verbose option for showing config description |
| Message-ID | <qvTkE-f2-79@gated-at.bofh.it> |
| In reply to | #1271526 |
To explain what each of variable options configures,
this option can be used with --skel option, i.e.
print the possible config variables with comments over each of them.
# perf config -k -v | --skel --verbose
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
tools/perf/builtin-config.c | 161 ++++++++++++++++++++++++++++----------------
1 file changed, 104 insertions(+), 57 deletions(-)
diff --git a/tools/perf/builtin-config.c b/tools/perf/builtin-config.c
index 2f8be59..c84ea7d 100644
--- a/tools/perf/builtin-config.c
+++ b/tools/perf/builtin-config.c
@@ -35,6 +35,8 @@ static struct option config_options[] = {
OPT_SET_UINT('k', "skel", &actions,
"produce an skeleton with the possible"
" config variables", ACTION_SKEL),
+ OPT_INCR('v', "verbose", &verbose, "Be more verbose"
+ " (show config description)"),
OPT_BOOLEAN(0, "system", &use_system_config, "use system config file"),
OPT_BOOLEAN(0, "user", &use_user_config, "use user config file"),
OPT_END()
@@ -108,68 +110,111 @@ struct config_item {
const char *s;
} value;
enum config_type type;
+ const char *desc;
};
-#define CONF_VAR(_sec, _name, _field, _val, _type) \
- { .section = _sec, .name = _name, .value._field = _val, .type = _type }
-
-#define CONF_BOOL_VAR(_idx, _sec, _name, _val) \
- [CONFIG_##_idx] = CONF_VAR(_sec, _name, b, _val, CONFIG_TYPE_BOOL)
-#define CONF_INT_VAR(_idx, _sec, _name, _val) \
- [CONFIG_##_idx] = CONF_VAR(_sec, _name, i, _val, CONFIG_TYPE_INT)
-#define CONF_LONG_VAR(_idx, _sec, _name, _val) \
- [CONFIG_##_idx] = CONF_VAR(_sec, _name, l, _val, CONFIG_TYPE_LONG)
-#define CONF_U64_VAR(_idx, _sec, _name, _val) \
- [CONFIG_##_idx] = CONF_VAR(_sec, _name, ll, _val, CONFIG_TYPE_U64)
-#define CONF_FLOAT_VAR(_idx, _sec, _name, _val) \
- [CONFIG_##_idx] = CONF_VAR(_sec, _name, f, _val, CONFIG_TYPE_FLOAT)
-#define CONF_DOUBLE_VAR(_idx, _sec, _name, _val) \
- [CONFIG_##_idx] = CONF_VAR(_sec, _name, d, _val, CONFIG_TYPE_DOUBLE)
-#define CONF_STR_VAR(_idx, _sec, _name, _val) \
- [CONFIG_##_idx] = CONF_VAR(_sec, _name, s, _val, CONFIG_TYPE_STRING)
+#define CONF_VAR(_sec, _name, _field, _val, _type, _desc) \
+ { .section = _sec, .name = _name, .value._field = _val, .type = _type, .desc = _desc}
+
+#define CONF_BOOL_VAR(_idx, _sec, _name, _val, _desc) \
+ [CONFIG_##_idx] = CONF_VAR(_sec, _name, b, _val, CONFIG_TYPE_BOOL, _desc)
+#define CONF_INT_VAR(_idx, _sec, _name, _val, _desc) \
+ [CONFIG_##_idx] = CONF_VAR(_sec, _name, i, _val, CONFIG_TYPE_INT, _desc)
+#define CONF_LONG_VAR(_idx, _sec, _name, _val, _desc) \
+ [CONFIG_##_idx] = CONF_VAR(_sec, _name, l, _val, CONFIG_TYPE_LONG, _desc)
+#define CONF_U64_VAR(_idx, _sec, _name, _val, _desc) \
+ [CONFIG_##_idx] = CONF_VAR(_sec, _name, ll, _val, CONFIG_TYPE_U64, _desc)
+#define CONF_FLOAT_VAR(_idx, _sec, _name, _val, _desc) \
+ [CONFIG_##_idx] = CONF_VAR(_sec, _name, f, _val, CONFIG_TYPE_FLOAT, _desc)
+#define CONF_DOUBLE_VAR(_idx, _sec, _name, _val, _desc) \
+ [CONFIG_##_idx] = CONF_VAR(_sec, _name, d, _val, CONFIG_TYPE_DOUBLE, _desc)
+#define CONF_STR_VAR(_idx, _sec, _name, _val, _desc) \
+ [CONFIG_##_idx] = CONF_VAR(_sec, _name, s, _val, CONFIG_TYPE_STRING, _desc)
#define CONF_END() { .type = CONFIG_END }
struct config_item default_configs[] = {
- CONF_STR_VAR(COLORS_TOP, "colors", "top", "red, default"),
- CONF_STR_VAR(COLORS_MEDIUM, "colors", "medium", "green, default"),
- CONF_STR_VAR(COLORS_NORMAL, "colors", "normal", "lightgray, default"),
- CONF_STR_VAR(COLORS_SELECTED, "colors", "selected", "white, lightgray"),
- CONF_STR_VAR(COLORS_CODE, "colors", "code", "blue, default"),
- CONF_STR_VAR(COLORS_ADDR, "colors", "addr", "magenta, default"),
- CONF_STR_VAR(COLORS_ROOT, "colors", "root", "white, blue"),
- CONF_BOOL_VAR(TUI_REPORT, "tui", "report", true),
- CONF_BOOL_VAR(TUI_ANNOTATE, "tui", "annotate", true),
- CONF_BOOL_VAR(TUI_TOP, "tui", "top", true),
- CONF_STR_VAR(BUILDID_DIR, "buildid", "dir", "~/.debug"),
- CONF_BOOL_VAR(ANNOTATE_HIDE_SRC_CODE, "annotate", "hide_src_code", false),
- CONF_BOOL_VAR(ANNOTATE_USE_OFFSET, "annotate", "use_offset", true),
- CONF_BOOL_VAR(ANNOTATE_JUMP_ARROWS, "annotate", "jump_arrows", true),
- CONF_BOOL_VAR(ANNOTATE_SHOW_NR_JUMPS, "annotate", "show_nr_jumps", false),
- CONF_BOOL_VAR(GTK_ANNOTATE, "gtk", "annotate", false),
- CONF_BOOL_VAR(GTK_REPORT, "gtk", "report", false),
- CONF_BOOL_VAR(GTK_TOP, "gtk", "top", false),
- CONF_BOOL_VAR(PAGER_CMD, "pager", "cmd", true),
- CONF_BOOL_VAR(PAGER_REPORT, "pager", "report", true),
- CONF_BOOL_VAR(PAGER_ANNOTATE, "pager", "annotate", true),
- CONF_BOOL_VAR(PAGER_TOP, "pager", "top", true),
- CONF_BOOL_VAR(PAGER_DIFF, "pager", "diff", true),
- CONF_STR_VAR(HELP_FORMAT, "help", "format", "man"),
- CONF_INT_VAR(HELP_AUTOCORRECT, "help", "autocorrect", 0),
- CONF_STR_VAR(HIST_PERCENTAGE, "hist", "percentage", "absolute"),
- CONF_BOOL_VAR(UI_SHOW_HEADERS, "ui", "show-headers", true),
- CONF_STR_VAR(CALL_GRAPH_RECORD_MODE, "call-graph", "record-mode", "fp"),
- CONF_LONG_VAR(CALL_GRAPH_DUMP_SIZE, "call-graph", "dump-size", 8192),
- CONF_STR_VAR(CALL_GRAPH_PRINT_TYPE, "call-graph", "print-type", "graph"),
- CONF_STR_VAR(CALL_GRAPH_ORDER, "call-graph", "order", "callee"),
- CONF_STR_VAR(CALL_GRAPH_SORT_KEY, "call-graph", "sort-key", "function"),
- CONF_DOUBLE_VAR(CALL_GRAPH_THRESHOLD, "call-graph", "threshold", 0.5),
- CONF_LONG_VAR(CALL_GRAPH_PRINT_LIMIT, "call-graph", "print-limit", 0),
- CONF_BOOL_VAR(REPORT_CHILDREN, "report", "children", true),
- CONF_FLOAT_VAR(REPORT_PERCENT_LIMIT, "report", "percent-limit", 0),
- CONF_U64_VAR(REPORT_QUEUE_SIZE, "report", "queue-size", 0),
- CONF_BOOL_VAR(TOP_CHILDREN, "top", "children", true),
- CONF_STR_VAR(MAN_VIEWER, "man", "viewer", "man"),
- CONF_STR_VAR(KMEM_DEFAULT, "kmem", "default", "slab"),
+ CONF_STR_VAR(COLORS_TOP, "colors", "top", "red, default",
+ "A overhead percentage which is more than 5%"),
+ CONF_STR_VAR(COLORS_MEDIUM, "colors", "medium", "green, default",
+ "A overhead percentage which has more than 0.5%"),
+ CONF_STR_VAR(COLORS_NORMAL, "colors", "normal", "lightgray, default",
+ "The rest of overhead percentages"),
+ CONF_STR_VAR(COLORS_SELECTED, "colors", "selected", "white, lightgray",
+ "The current entry in a list of entries on TUI"),
+ CONF_STR_VAR(COLORS_CODE, "colors", "code", "blue, default",
+ "Arrows and lines in jumps on assembly code listings"),
+ CONF_STR_VAR(COLORS_ADDR, "colors", "addr", "magenta, default",
+ "Addresses from 'annotate"),
+ CONF_STR_VAR(COLORS_ROOT, "colors", "root", "white, blue",
+ "Headers in the output of a sub-command 'top'"),
+ CONF_BOOL_VAR(TUI_REPORT, "tui", "report", true,
+ "TUI can be enabled or not"),
+ CONF_BOOL_VAR(TUI_ANNOTATE, "tui", "annotate", true,
+ "TUI can be enabled or not"),
+ CONF_BOOL_VAR(TUI_TOP, "tui", "top", true,
+ "TUI can be enabled or not"),
+ CONF_STR_VAR(BUILDID_DIR, "buildid", "dir", "~/.debug",
+ "The directory location of binaries, shared libraries,"
+ " /proc/kallsyms and /proc/kcore files to be used"
+ " at analysis time"),
+ CONF_BOOL_VAR(ANNOTATE_HIDE_SRC_CODE, "annotate", "hide_src_code", false,
+ "Print a list of assembly code without the source code or not"),
+ CONF_BOOL_VAR(ANNOTATE_USE_OFFSET, "annotate", "use_offset", true,
+ "Addresses subtracted from a base address can be printed"),
+ CONF_BOOL_VAR(ANNOTATE_JUMP_ARROWS, "annotate", "jump_arrows", true,
+ "Arrows for jump instruction can be printed or not"),
+ CONF_BOOL_VAR(ANNOTATE_SHOW_NR_JUMPS, "annotate", "show_nr_jumps", false,
+ "The number of branches branching to that address can be printed"),
+ CONF_BOOL_VAR(GTK_ANNOTATE, "gtk", "annotate", false,
+ "GTK can be enabled or not"),
+ CONF_BOOL_VAR(GTK_REPORT, "gtk", "report", false,
+ "GTK can be enabled or not"),
+ CONF_BOOL_VAR(GTK_TOP, "gtk", "top", false,
+ "GTK can be enabled or not"),
+ CONF_BOOL_VAR(PAGER_CMD, "pager", "cmd", true,
+ "As stdio instead of TUI"),
+ CONF_BOOL_VAR(PAGER_REPORT, "pager", "report", true,
+ "As stdio instead of TUI"),
+ CONF_BOOL_VAR(PAGER_ANNOTATE, "pager", "annotate", true,
+ "As stdio instead of TUI"),
+ CONF_BOOL_VAR(PAGER_TOP, "pager", "top", true,
+ "As stdio instead of TUI"),
+ CONF_BOOL_VAR(PAGER_DIFF, "pager", "diff", true,
+ "As stdio instead of TUI"),
+ CONF_STR_VAR(HELP_FORMAT, "help", "format", "man", "A format of manual page"),
+ CONF_INT_VAR(HELP_AUTOCORRECT, "help", "autocorrect", 0,
+ "Automatically correct and execute mistyped commands after"
+ " waiting for the given number of deciseconds"),
+ CONF_STR_VAR(HIST_PERCENTAGE, "hist", "percentage", "absolute",
+ "Control a way to calcurate overhead of filtered entries"),
+ CONF_BOOL_VAR(UI_SHOW_HEADERS, "ui", "show-headers", true,
+ "Show or hide columns as header on TUI"),
+ CONF_STR_VAR(CALL_GRAPH_RECORD_MODE, "call-graph", "record-mode", "fp",
+ "The mode can be 'fp' (frame pointer) and 'dwarf'"),
+ CONF_LONG_VAR(CALL_GRAPH_DUMP_SIZE, "call-graph", "dump-size", 8192,
+ "The size of stack to dump in order to do post-unwinding"),
+ CONF_STR_VAR(CALL_GRAPH_PRINT_TYPE, "call-graph", "print-type", "graph",
+ "The type can be graph (graph absolute), fractal (graph relative), fla"),
+ CONF_STR_VAR(CALL_GRAPH_ORDER, "call-graph", "order", "callee",
+ "Controls print order of callchains (callee or caller)"),
+ CONF_STR_VAR(CALL_GRAPH_SORT_KEY, "call-graph", "sort-key", "function",
+ "It can be 'function' or 'address'"),
+ CONF_DOUBLE_VAR(CALL_GRAPH_THRESHOLD, "call-graph", "threshold", 0.5,
+ "Small callchains can be omitted under a certain overhead (threshold)"),
+ CONF_LONG_VAR(CALL_GRAPH_PRINT_LIMIT, "call-graph", "print-limit", 0,
+ "Control the number of callchains printed for a single entry"),
+ CONF_BOOL_VAR(REPORT_CHILDREN, "report", "children", true,
+ "Accumulate callchain of children and show total overhead or not"),
+ CONF_FLOAT_VAR(REPORT_PERCENT_LIMIT, "report", "percent-limit", 0,
+ "Entries have overhead lower than this percentage will not be printed"),
+ CONF_U64_VAR(REPORT_QUEUE_SIZE, "report", "queue-size", 0,
+ "The maximum allocation size for session's ordered events queue"),
+ CONF_BOOL_VAR(TOP_CHILDREN, "top", "children", true,
+ "Similar as report.children"),
+ CONF_STR_VAR(MAN_VIEWER, "man", "viewer", "man",
+ "Select manual tools that work a sub-command 'help'"),
+ CONF_STR_VAR(KMEM_DEFAULT, "kmem", "default", "slab",
+ "Which allocator is analyzed between 'slab' and 'page"),
CONF_END()
};
@@ -291,6 +336,8 @@ static int show_skel_config(void)
section = (char *)config->section;
printf("\n[%s]\n", config->section);
}
+ if (verbose)
+ printf("\t# %s\n", config->desc);
printf("\t%s = %s\n", config->name, value);
free(value);
}
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-17 19:50 +0100 |
| Subject | [PATCH v11 03/24] perf config: Document variables for 'color' section in man page |
| Message-ID | <qvTuh-is-7@gated-at.bofh.it> |
| In reply to | #1271526 |
Explain 'color' section and its variables. 'top', 'medium', 'normal', 'selected', 'code', 'addr' and 'root'. Cc: Namhyung Kim <namhyung@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> --- tools/perf/Documentation/perf-config.txt | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt index dfdab9c..84a982b 100644 --- a/tools/perf/Documentation/perf-config.txt +++ b/tools/perf/Documentation/perf-config.txt @@ -98,6 +98,50 @@ Given a $HOME/.perfconfig like this: order = caller sort-key = function +Variables +~~~~~~~~~ + +colors.*:: + The variables for customizing the colors used in the output for the + 'report', 'top' and annotate in the TUI. They should specify the + background and foreground colors, separated by a comma, for example: + + medium = green, lightgray + + If you want to use the color configured for you terminal, just leave it + as 'default', for example: + + medium = default, lightgray + + Available colors: + red, green, default, black, blue, white, magenta, lightgray + + colors.top:: + 'top' means a overhead percentage which is more than 5%. + And values of this variable specify percentage colors. + Basic key values are foreground-color 'red' and + background-color 'default'. + colors.medium:: + 'medium' means a overhead percentage which has more than 0.5%. + Default values are 'green' and 'default'. + colors.normal:: + 'normal' means the rest of overhead percentages + except 'top', 'medium', 'selected'. + Default values are 'lightgray' and 'default'. + colors.selected:: + This selects the colors for the current entry in a list of entries + from sub-commands (top,report,annotate). + Default values are 'white' and 'lightgray'. + colors.code:: + Colors for arrows and lines in jumps on assembly code listings + such as 'jns','jmp','jane',etc. Default values are 'blue', 'default'. + colors.addr:: + This selects colors for addresses from 'annotate'. + Default values are 'magenta', 'default'. + colors.root:: + Colors for headers in the output of a sub-command 'top'. + Default values are 'white', 'blue'. + SEE ALSO -------- linkperf:perf[1] -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Namhyung Kim <namhyung@kernel.org> |
|---|---|
| Date | 2015-11-18 00:50 +0100 |
| Subject | Re: [PATCH v11 03/24] perf config: Document variables for 'color' section in man page |
| Message-ID | <qvYaB-3kD-5@gated-at.bofh.it> |
| In reply to | #1271556 |
On Tue, Nov 17, 2015 at 10:53:23PM +0900, Taeung Song wrote: > Explain 'color' section and its variables. > > 'top', 'medium', 'normal', 'selected', > 'code', 'addr' and 'root'. > > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Jiri Olsa <jolsa@redhat.com> > Signed-off-by: Taeung Song <treeze.taeung@gmail.com> > --- > tools/perf/Documentation/perf-config.txt | 44 ++++++++++++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > > diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt > index dfdab9c..84a982b 100644 > --- a/tools/perf/Documentation/perf-config.txt > +++ b/tools/perf/Documentation/perf-config.txt > @@ -98,6 +98,50 @@ Given a $HOME/.perfconfig like this: > order = caller > sort-key = function > > +Variables > +~~~~~~~~~ > + > +colors.*:: > + The variables for customizing the colors used in the output for the > + 'report', 'top' and annotate in the TUI. They should specify the The 'annotate' also needs to be surrounded by single quotes. > + background and foreground colors, separated by a comma, for example: I think 'foreground and background' is better due to the order. > + > + medium = green, lightgray > + > + If you want to use the color configured for you terminal, just leave it > + as 'default', for example: > + > + medium = default, lightgray > + > + Available colors: > + red, green, default, black, blue, white, magenta, lightgray I don't know about the libslang color scheme, but it seems that the standard color names like 'yellow', 'cyan' and 'gray' are also available. > + > + colors.top:: > + 'top' means a overhead percentage which is more than 5%. > + And values of this variable specify percentage colors. > + Basic key values are foreground-color 'red' and > + background-color 'default'. > + colors.medium:: > + 'medium' means a overhead percentage which has more than 0.5%. > + Default values are 'green' and 'default'. > + colors.normal:: > + 'normal' means the rest of overhead percentages > + except 'top', 'medium', 'selected'. > + Default values are 'lightgray' and 'default'. > + colors.selected:: > + This selects the colors for the current entry in a list of entries > + from sub-commands (top,report,annotate). > + Default values are 'white' and 'lightgray'. Isn't it 'black' and 'lightgray'? > + colors.code:: > + Colors for arrows and lines in jumps on assembly code listings > + such as 'jns','jmp','jane',etc. Default values are 'blue', 'default'. Hmm.. I thought this is for source code displayed with annotate output, but it's only for jump arrows? Maybe it's better to rename this then.. Anyway it's a different problem. > + colors.addr:: > + This selects colors for addresses from 'annotate'. > + Default values are 'magenta', 'default'. > + colors.root:: > + Colors for headers in the output of a sub-command 'top'. It also works for 'report'. Thanks, Namhyung > + Default values are 'white', 'blue'. > + > SEE ALSO > -------- > linkperf:perf[1] > -- > 1.9.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-17 19:50 +0100 |
| Subject | [PATCH v11 02/24] perf tools: Add perf-config document |
| Message-ID | <qvTui-is-15@gated-at.bofh.it> |
| In reply to | #1271526 |
Add perf-config document to describe the perf configuration and a subcommand 'list'. Cc: Namhyung Kim <namhyung@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> --- tools/perf/Documentation/perf-config.txt | 103 +++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 tools/perf/Documentation/perf-config.txt diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt new file mode 100644 index 0000000..dfdab9c --- /dev/null +++ b/tools/perf/Documentation/perf-config.txt @@ -0,0 +1,103 @@ +perf-config(1) +============== + +NAME +---- +perf-config - Get and set variables in a configuration file. + +SYNOPSIS +-------- +[verse] +'perf config' -l | --list + +DESCRIPTION +----------- +You can manage variables in a configuration file with this command. + +OPTIONS +------- + +-l:: +--list:: + Show current config variables, name and value, for all sections. + +CONFIGURATION FILE +------------------ + +The perf configuration file contains many variables to change various +aspects of each of its tools, including output, disk usage, etc. +The '$HOME/.perfconfig' file is used to store a per-user configuration. +The file '$(sysconfdir)/perfconfig' can be used to +store a system-wide default configuration. + +Syntax +~~~~~~ + +The file consist of sections. A section starts with its name +surrounded by square brackets and continues till the next section +begins. Each variable must be in a section, and have the form +'name = value', for example: + + [section] + name1 = value1 + name2 = value2 + +Section names are case sensitive and can contain any characters except +newline (double quote `"` and backslash have to be escaped as `\"` and `\\`, +respectively). Section headers can't span multiple lines. + +Example +~~~~~~~ + +Given a $HOME/.perfconfig like this: + +# +# This is the config file, and +# a '#' and ';' character indicates a comment +# + +[colors] + # Color variables + top = red, default + medium = green, default + normal = lightgray, default + selected = white, lightgray + code = blue, default + addr = magenta, default + root = white, blue + +[tui] + # Defaults if linked with libslang + report = on + annotate = on + top = on + +[buildid] + # Default, disable using /dev/null + dir = ~/.debug + +[annotate] + # Defaults + hide_src_code = false + use_offset = true + jump_arrows = true + show_nr_jumps = false + +[help] + # Format can be man, info, web or html + format = man + autocorrect = 0 + +[ui] + show-headers = true + +[call-graph] + # fp (framepointer), dwarf + record-mode = fp + print-type = graph + order = caller + sort-key = function + +SEE ALSO +-------- +linkperf:perf[1] -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Namhyung Kim <namhyung@kernel.org> |
|---|---|
| Date | 2015-11-18 00:20 +0100 |
| Subject | Re: [PATCH v11 02/24] perf tools: Add perf-config document |
| Message-ID | <qvXHz-3ak-7@gated-at.bofh.it> |
| In reply to | #1271558 |
On Tue, Nov 17, 2015 at 10:53:22PM +0900, Taeung Song wrote: > Add perf-config document to describe the perf configuration > and a subcommand 'list'. > > Cc: Jiri Olsa <jolsa@redhat.com> > Signed-off-by: Taeung Song <treeze.taeung@gmail.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Thanks, Namhyung > --- > tools/perf/Documentation/perf-config.txt | 103 +++++++++++++++++++++++++++++++ > 1 file changed, 103 insertions(+) > create mode 100644 tools/perf/Documentation/perf-config.txt > > diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt > new file mode 100644 > index 0000000..dfdab9c > --- /dev/null > +++ b/tools/perf/Documentation/perf-config.txt > @@ -0,0 +1,103 @@ > +perf-config(1) > +============== > + > +NAME > +---- > +perf-config - Get and set variables in a configuration file. > + > +SYNOPSIS > +-------- > +[verse] > +'perf config' -l | --list > + > +DESCRIPTION > +----------- > +You can manage variables in a configuration file with this command. > + > +OPTIONS > +------- > + > +-l:: > +--list:: > + Show current config variables, name and value, for all sections. > + > +CONFIGURATION FILE > +------------------ > + > +The perf configuration file contains many variables to change various > +aspects of each of its tools, including output, disk usage, etc. > +The '$HOME/.perfconfig' file is used to store a per-user configuration. > +The file '$(sysconfdir)/perfconfig' can be used to > +store a system-wide default configuration. > + > +Syntax > +~~~~~~ > + > +The file consist of sections. A section starts with its name > +surrounded by square brackets and continues till the next section > +begins. Each variable must be in a section, and have the form > +'name = value', for example: > + > + [section] > + name1 = value1 > + name2 = value2 > + > +Section names are case sensitive and can contain any characters except > +newline (double quote `"` and backslash have to be escaped as `\"` and `\\`, > +respectively). Section headers can't span multiple lines. > + > +Example > +~~~~~~~ > + > +Given a $HOME/.perfconfig like this: > + > +# > +# This is the config file, and > +# a '#' and ';' character indicates a comment > +# > + > +[colors] > + # Color variables > + top = red, default > + medium = green, default > + normal = lightgray, default > + selected = white, lightgray > + code = blue, default > + addr = magenta, default > + root = white, blue > + > +[tui] > + # Defaults if linked with libslang > + report = on > + annotate = on > + top = on > + > +[buildid] > + # Default, disable using /dev/null > + dir = ~/.debug > + > +[annotate] > + # Defaults > + hide_src_code = false > + use_offset = true > + jump_arrows = true > + show_nr_jumps = false > + > +[help] > + # Format can be man, info, web or html > + format = man > + autocorrect = 0 > + > +[ui] > + show-headers = true > + > +[call-graph] > + # fp (framepointer), dwarf > + record-mode = fp > + print-type = graph > + order = caller > + sort-key = function > + > +SEE ALSO > +-------- > +linkperf:perf[1] > -- > 1.9.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Date | 2015-11-19 20:30 +0100 |
| Subject | Re: [PATCH v11 02/24] perf tools: Add perf-config document |
| Message-ID | <qwD46-5aJ-1@gated-at.bofh.it> |
| In reply to | #1271735 |
Em Wed, Nov 18, 2015 at 08:13:13AM +0900, Namhyung Kim escreveu: > On Tue, Nov 17, 2015 at 10:53:22PM +0900, Taeung Song wrote: > > Add perf-config document to describe the perf configuration > > and a subcommand 'list'. > > > > Cc: Jiri Olsa <jolsa@redhat.com> > > Signed-off-by: Taeung Song <treeze.taeung@gmail.com> > > Acked-by: Namhyung Kim <namhyung@kernel.org> Taeung, please check this: [acme@zoo linux]$ rpm -q asciidoc asciidoc-8.6.8-6.fc21.noarch I applied the first patch, continue your work from my perf/core branch. INSTALL perf_completion-script INSTALL tests ASCIIDOC /tmp/build/perf/perf-kmem.xml ASCIIDOC /tmp/build/perf/perf-trace.xml ASCIIDOC /tmp/build/perf/perf-data.xml ASCIIDOC /tmp/build/perf/perf-buildid-cache.xml ASCIIDOC /tmp/build/perf/perf-list.xml ASCIIDOC /tmp/build/perf/perf-help.xml ASCIIDOC /tmp/build/perf/perf-script.xml ASCIIDOC /tmp/build/perf/perf-lock.xml ASCIIDOC /tmp/build/perf/perf-archive.xml ASCIIDOC /tmp/build/perf/perf-probe.xml ASCIIDOC /tmp/build/perf/perf-config.xml ASCIIDOC /tmp/build/perf/perf-bench.xml ASCIIDOC /tmp/build/perf/perf-evlist.xml asciidoc: WARNING: perf-config.txt: line 59: missing style: [paradef-literal]: colors asciidoc: WARNING: perf-config.txt: line 69: missing style: [paradef-literal]: tui asciidoc: WARNING: perf-config.txt: line 75: missing style: [paradef-literal]: buildid asciidoc: WARNING: perf-config.txt: line 79: missing style: [paradef-literal]: annotate asciidoc: WARNING: perf-config.txt: line 86: missing style: [paradef-literal]: help asciidoc: WARNING: perf-config.txt: line 91: missing style: [paradef-literal]: ui asciidoc: WARNING: perf-config.txt: line 94: missing style: [paradef-literal]: call-graph ASCIIDOC /tmp/build/perf/perf-sched.xml -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-22 11:20 +0100 |
| Subject | [PATCH v11 RESEND 02/24] perf tools: Add perf-config document |
| Message-ID | <qxzUv-2li-21@gated-at.bofh.it> |
| In reply to | #1273428 |
Add perf-config document to describe the perf configuration and a subcommand 'list’. Cc: Namhyung Kim <namhyung@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> --- tools/perf/Documentation/perf-config.txt | 103 +++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 tools/perf/Documentation/perf-config.txt diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt new file mode 100644 index 0000000..b9ca1e3 --- /dev/null +++ b/tools/perf/Documentation/perf-config.txt @@ -0,0 +1,103 @@ +perf-config(1) +============== + +NAME +---- +perf-config - Get and set variables in a configuration file. + +SYNOPSIS +-------- +[verse] +'perf config' -l | --list + +DESCRIPTION +----------- +You can manage variables in a configuration file with this command. + +OPTIONS +------- + +-l:: +--list:: + Show current config variables, name and value, for all sections. + +CONFIGURATION FILE +------------------ + +The perf configuration file contains many variables to change various +aspects of each of its tools, including output, disk usage, etc. +The '$HOME/.perfconfig' file is used to store a per-user configuration. +The file '$(sysconfdir)/perfconfig' can be used to +store a system-wide default configuration. + +Syntax +~~~~~~ + +The file consist of sections. A section starts with its name +surrounded by square brackets and continues till the next section +begins. Each variable must be in a section, and have the form +'name = value', for example: + + [section] + name1 = value1 + name2 = value2 + +Section names are case sensitive and can contain any characters except +newline (double quote `"` and backslash have to be escaped as `\"` and `\\`, +respectively). Section headers can't span multiple lines. + +Example +~~~~~~~ + +Given a $HOME/.perfconfig like this: + +# +# This is the config file, and +# a '#' and ';' character indicates a comment +# + + [colors] + # Color variables + top = red, default + medium = green, default + normal = lightgray, default + selected = white, lightgray + code = blue, default + addr = magenta, default + root = white, blue + + [tui] + # Defaults if linked with libslang + report = on + annotate = on + top = on + + [buildid] + # Default, disable using /dev/null + dir = ~/.debug + + [annotate] + # Defaults + hide_src_code = false + use_offset = true + jump_arrows = true + show_nr_jumps = false + + [help] + # Format can be man, info, web or html + format = man + autocorrect = 0 + + [ui] + show-headers = true + + [call-graph] + # fp (framepointer), dwarf + record-mode = fp + print-type = graph + order = caller + sort-key = function + +SEE ALSO +-------- +linkperf:perf[1] -- 1.9.1-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> |
|---|---|
| Date | 2015-11-23 15:20 +0100 |
| Subject | Re: [PATCH v11 RESEND 02/24] perf tools: Add perf-config document |
| Message-ID | <qy08h-2R4-1@gated-at.bofh.it> |
| In reply to | #1274841 |
Em Sun, Nov 22, 2015 at 07:11:56PM +0900, Taeung Song escreveu: > Add perf-config document to describe the perf configuration > and a subcommand 'list’. Worked this time, applied, will continue processing the other patches soon. - Arnaldo > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Jiri Olsa <jolsa@redhat.com> > Signed-off-by: Taeung Song <treeze.taeung@gmail.com> > --- > tools/perf/Documentation/perf-config.txt | 103 +++++++++++++++++++++++++++++++ > 1 file changed, 103 insertions(+) > create mode 100644 tools/perf/Documentation/perf-config.txt > > diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt > new file mode 100644 > index 0000000..b9ca1e3 > --- /dev/null > +++ b/tools/perf/Documentation/perf-config.txt > @@ -0,0 +1,103 @@ > +perf-config(1) > +============== > + > +NAME > +---- > +perf-config - Get and set variables in a configuration file. > + > +SYNOPSIS > +-------- > +[verse] > +'perf config' -l | --list > + > +DESCRIPTION > +----------- > +You can manage variables in a configuration file with this command. > + > +OPTIONS > +------- > + > +-l:: > +--list:: > + Show current config variables, name and value, for all sections. > + > +CONFIGURATION FILE > +------------------ > + > +The perf configuration file contains many variables to change various > +aspects of each of its tools, including output, disk usage, etc. > +The '$HOME/.perfconfig' file is used to store a per-user configuration. > +The file '$(sysconfdir)/perfconfig' can be used to > +store a system-wide default configuration. > + > +Syntax > +~~~~~~ > + > +The file consist of sections. A section starts with its name > +surrounded by square brackets and continues till the next section > +begins. Each variable must be in a section, and have the form > +'name = value', for example: > + > + [section] > + name1 = value1 > + name2 = value2 > + > +Section names are case sensitive and can contain any characters except > +newline (double quote `"` and backslash have to be escaped as `\"` and `\\`, > +respectively). Section headers can't span multiple lines. > + > +Example > +~~~~~~~ > + > +Given a $HOME/.perfconfig like this: > + > +# > +# This is the config file, and > +# a '#' and ';' character indicates a comment > +# > + > + [colors] > + # Color variables > + top = red, default > + medium = green, default > + normal = lightgray, default > + selected = white, lightgray > + code = blue, default > + addr = magenta, default > + root = white, blue > + > + [tui] > + # Defaults if linked with libslang > + report = on > + annotate = on > + top = on > + > + [buildid] > + # Default, disable using /dev/null > + dir = ~/.debug > + > + [annotate] > + # Defaults > + hide_src_code = false > + use_offset = true > + jump_arrows = true > + show_nr_jumps = false > + > + [help] > + # Format can be man, info, web or html > + format = man > + autocorrect = 0 > + > + [ui] > + show-headers = true > + > + [call-graph] > + # fp (framepointer), dwarf > + record-mode = fp > + print-type = graph > + order = caller > + sort-key = function > + > +SEE ALSO > +-------- > +linkperf:perf[1] > -- > 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | tip-bot for Taeung Song <tipbot@zytor.com> |
|---|---|
| Date | 2015-11-26 09:30 +0100 |
| Subject | [tip:perf/core] perf config: Add initial man page |
| Message-ID | <qz06d-2tb-13@gated-at.bofh.it> |
| In reply to | #1274841 |
Commit-ID: 7d6852432acb3b09fc3ec45dd65421d34eebe3b5 Gitweb: http://git.kernel.org/tip/7d6852432acb3b09fc3ec45dd65421d34eebe3b5 Author: Taeung Song <treeze.taeung@gmail.com> AuthorDate: Sun, 22 Nov 2015 19:11:56 +0900 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Mon, 23 Nov 2015 18:31:25 -0300 perf config: Add initial man page Add perf-config document to describe the perf configuration and a 'list’ subcommand. Signed-off-by: Taeung Song <treeze.taeung@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Link: http://lkml.kernel.org/r/63AD9B57-7B8C-46F8-8F18-0FFEB9A6A1BC@gmail.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/Documentation/perf-config.txt | 103 +++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/tools/perf/Documentation/perf-config.txt b/tools/perf/Documentation/perf-config.txt new file mode 100644 index 0000000..b9ca1e3 --- /dev/null +++ b/tools/perf/Documentation/perf-config.txt @@ -0,0 +1,103 @@ +perf-config(1) +============== + +NAME +---- +perf-config - Get and set variables in a configuration file. + +SYNOPSIS +-------- +[verse] +'perf config' -l | --list + +DESCRIPTION +----------- +You can manage variables in a configuration file with this command. + +OPTIONS +------- + +-l:: +--list:: + Show current config variables, name and value, for all sections. + +CONFIGURATION FILE +------------------ + +The perf configuration file contains many variables to change various +aspects of each of its tools, including output, disk usage, etc. +The '$HOME/.perfconfig' file is used to store a per-user configuration. +The file '$(sysconfdir)/perfconfig' can be used to +store a system-wide default configuration. + +Syntax +~~~~~~ + +The file consist of sections. A section starts with its name +surrounded by square brackets and continues till the next section +begins. Each variable must be in a section, and have the form +'name = value', for example: + + [section] + name1 = value1 + name2 = value2 + +Section names are case sensitive and can contain any characters except +newline (double quote `"` and backslash have to be escaped as `\"` and `\\`, +respectively). Section headers can't span multiple lines. + +Example +~~~~~~~ + +Given a $HOME/.perfconfig like this: + +# +# This is the config file, and +# a '#' and ';' character indicates a comment +# + + [colors] + # Color variables + top = red, default + medium = green, default + normal = lightgray, default + selected = white, lightgray + code = blue, default + addr = magenta, default + root = white, blue + + [tui] + # Defaults if linked with libslang + report = on + annotate = on + top = on + + [buildid] + # Default, disable using /dev/null + dir = ~/.debug + + [annotate] + # Defaults + hide_src_code = false + use_offset = true + jump_arrows = true + show_nr_jumps = false + + [help] + # Format can be man, info, web or html + format = man + autocorrect = 0 + + [ui] + show-headers = true + + [call-graph] + # fp (framepointer), dwarf + record-mode = fp + print-type = graph + order = caller + sort-key = function + +SEE ALSO +-------- +linkperf:perf[1] -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Taeung Song <treeze.taeung@gmail.com> |
|---|---|
| Date | 2015-11-22 11:20 +0100 |
| Subject | Re: [PATCH v11 02/24] perf tools: Add perf-config document |
| Message-ID | <qxzUv-2li-23@gated-at.bofh.it> |
| In reply to | #1273428 |
Hi, Arnaldo, Namhyung I left out indentation for config example. I fixed the bugs and I resent patch mail. Thanks, Taeung > On Nov 20, 2015, at 4:24 AM, Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> wrote: > > Em Wed, Nov 18, 2015 at 08:13:13AM +0900, Namhyung Kim escreveu: >> On Tue, Nov 17, 2015 at 10:53:22PM +0900, Taeung Song wrote: >>> Add perf-config document to describe the perf configuration >>> and a subcommand 'list'. >>> >>> Cc: Jiri Olsa <jolsa@redhat.com> >>> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> >> >> Acked-by: Namhyung Kim <namhyung@kernel.org> > > Taeung, please check this: > > [acme@zoo linux]$ rpm -q asciidoc > asciidoc-8.6.8-6.fc21.noarch > > I applied the first patch, continue your work from my perf/core branch. > > INSTALL perf_completion-script > INSTALL tests > ASCIIDOC /tmp/build/perf/perf-kmem.xml > ASCIIDOC /tmp/build/perf/perf-trace.xml > ASCIIDOC /tmp/build/perf/perf-data.xml > ASCIIDOC /tmp/build/perf/perf-buildid-cache.xml > ASCIIDOC /tmp/build/perf/perf-list.xml > ASCIIDOC /tmp/build/perf/perf-help.xml > ASCIIDOC /tmp/build/perf/perf-script.xml > ASCIIDOC /tmp/build/perf/perf-lock.xml > ASCIIDOC /tmp/build/perf/perf-archive.xml > ASCIIDOC /tmp/build/perf/perf-probe.xml > ASCIIDOC /tmp/build/perf/perf-config.xml > ASCIIDOC /tmp/build/perf/perf-bench.xml > ASCIIDOC /tmp/build/perf/perf-evlist.xml > asciidoc: WARNING: perf-config.txt: line 59: missing style: [paradef-literal]: colors > asciidoc: WARNING: perf-config.txt: line 69: missing style: [paradef-literal]: tui > asciidoc: WARNING: perf-config.txt: line 75: missing style: [paradef-literal]: buildid > asciidoc: WARNING: perf-config.txt: line 79: missing style: [paradef-literal]: annotate > asciidoc: WARNING: perf-config.txt: line 86: missing style: [paradef-literal]: help > asciidoc: WARNING: perf-config.txt: line 91: missing style: [paradef-literal]: ui > asciidoc: WARNING: perf-config.txt: line 94: missing style: [paradef-literal]: call-graph > ASCIIDOC /tmp/build/perf/perf-sched.xml > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
Page 2 of 3 — ← Prev page 1 [2] 3 Next page →
Back to top | Article view | linux.kernel
csiph-web