perf annotate stdio: Support --show-nr-samples option
PATCH v3 1/5 perf annotate stdio: Support --show-nr-samples option
Add --show-nr-samples option to perf-annotate so that it corresponds with perf-report.
--- tools/perf/Documentation/perf-annotate.txt | 4 ++++ tools/perf/builtin-annotate.c | 2 ++ tools/perf/util/annotate.c | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-)
tools/perf/Documentation/perf-annotate.txt +4 -0
@@ -43,6 +43,10 @@ OPTIONS --quiet:: Do not show any message. (Suppress -v) +-n:: +--show-nr-samples:: + Show the number of samples for each symbol + -D:: --dump-raw-trace:: Dump raw trace in ASCII.
tools/perf/builtin-annotate.c +2 -0
@@ -445,6 +445,8 @@ int cmd_annotate(int argc, const char **argv) "Show event group information together"),OPT_BOOLEAN (0 ,"show-total-period" , &symbol_conf.show_total_period,"Show a column with the sum of periods" ), +OPT_BOOLEAN ('n' ,"show-nr-samples" , &symbol_conf.show_nr_samples, +"Show a column with the number of samples" ),OPT_CALLBACK_DEFAULT (0 ,"stdio-color" ,NULL ,"mode" ,"'always' (default), 'never' or 'auto' only applicable to --stdio mode" , stdio__config_color, "always"),
tools/perf/util/annotate.c +5 -1
@@ -1145,6 +1145,9 @@ static int disasm_line__print(struct disasm_line *dl, struct symbol *sym, u64 stif (symbol_conf.show_total_period)color_fprintf (stdout, color," %11" PRIu64, sample.period); +else if (symbol_conf.show_nr_samples) +color_fprintf (stdout, color," %7" PRIu64, + sample.nr_samples);else color_fprintf (stdout, color," %7.2f" , percent); }
@@ -1825,7 +1828,8 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map, width *= evsel->nr_members; graph_dotted_len =printf (" %-*.*s| Source code & Disassembly of %s for %s (%" PRIu64" samples)\n" , - width, width, symbol_conf.show_total_period ?"Event count" :"Percent" , + width, width, symbol_conf.show_total_period ?"Period" : + symbol_conf.show_nr_samples ?"Samples" :"Percent" , d_filename, evsel_name, h->nr_samples); printf("%-*.*s----\n",
Signature · 1 line
2.7.4
Arnaldo Carvalho de Melo
maintainerEm Fri, Aug 18, 2017 at 05:46:48PM +0900, Taeung Song escreveu:
Quoted 2 lines
Add --show-nr-samples option to perf-annotate so that it corresponds with perf-report.
So, at this point I tried to test it and forgot this was just about --stdio, which confused me, so I added the following patch, that I'll lift when adding the browser support, which may not happen at this time if there are problems there.
@@ -473,6 +474,11 @@ int cmd_annotate(int argc, const char **argv)
annotate.sym_hist_filter = argv[0];
}+ if (symbol_conf.show_nr_samples && !annotate.use_stdio) {
+ pr_err("--show-nr-samples is only available in --stdio mode at this time\n");
+ return ret;
+ }
+
- Arnaldo
Quoted 64 lines
Cc Namhyung Kim <[email protected]>Cc Milian Wolff <[email protected]>Cc Jiri Olsa <[email protected]>Signed-off-by Taeung Song <[email protected]>--- tools/perf/Documentation/perf-annotate.txt | 4 ++++ tools/perf/builtin-annotate.c | 2 ++ tools/perf/util/annotate.c | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-)tools/perf/Documentation/perf-annotate.txt +4
-0@@ -43,6 +43,10 @@ OPTIONS --quiet:: Do not show any message. (Suppress -v) +-n:: +--show-nr-samples:: + Show the number of samples for each symbol + -D:: --dump-raw-trace:: Dump raw trace in ASCII.tools/perf/builtin-annotate.c +2
-0@@ -445,6 +445,8 @@ int cmd_annotate(int argc, const char **argv) "Show event group information together"),OPT_BOOLEAN (0 ,"show-total-period" , &symbol_conf.show_total_period,"Show a column with the sum of periods" ), +OPT_BOOLEAN ('n' ,"show-nr-samples" , &symbol_conf.show_nr_samples, +"Show a column with the number of samples" ),OPT_CALLBACK_DEFAULT (0 ,"stdio-color" ,NULL ,"mode" ,"'always' (default), 'never' or 'auto' only applicable to --stdio mode" , stdio__config_color, "always"),tools/perf/util/annotate.c +5
-1@@ -1145,6 +1145,9 @@ static int disasm_line__print(struct disasm_line *dl, struct symbol *sym, u64 stif (symbol_conf.show_total_period)color_fprintf (stdout, color," %11" PRIu64, sample.period); +else if (symbol_conf.show_nr_samples) +color_fprintf (stdout, color," %7" PRIu64, + sample.nr_samples);else color_fprintf (stdout, color," %7.2f" , percent); }@@ -1825,7 +1828,8 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map, width *= evsel->nr_members; graph_dotted_len =printf (" %-*.*s| Source code & Disassembly of %s for %s (%" PRIu64" samples)\n" , - width, width, symbol_conf.show_total_period ?"Event count" :"Percent" , + width, width, symbol_conf.show_total_period ?"Period" : + symbol_conf.show_nr_samples ?"Samples" :"Percent" , d_filename, evsel_name, h->nr_samples); printf("%-*.*s----\n",Signature · 1 line
2.7.4
Quoted 11 lines · Arnaldo Carvalho de Melo
Em Fri, Aug 18, 2017 at 05:46:48PM +0900, Taeung Song escreveu:
Quoted 2 lines
Add --show-nr-samples option to perf-annotate so that it corresponds with perf-report.
So, at this point I tried to test it and forgot this was just about --stdio, which confused me, so I added the following patch, that I'll lift when adding the browser support, which may not happen at this time if there are problems there.
(quoted diff) +0
-0@@ -473,6 +474,11 @@ int cmd_annotate(int argc, const char **argv) annotate.sym_hist_filter = argv[0];
Review int cmd_annotate(int argc, const char **argv) · line 483
Quoted 10 lines
(quoted diff) +5
-1} + if (symbol_conf.show_nr_samples && !annotate.use_stdio) { + pr_err("--show-nr-samples is only available in --stdio mode at this time\n"); + return ret; + } + - Arnaldo
Ok, got it.
Thanks,
Taeung
Quoted 64 lines
Quoted 64 lines
Cc Namhyung Kim <[email protected]>Cc Milian Wolff <[email protected]>Cc Jiri Olsa <[email protected]>Signed-off-by Taeung Song <[email protected]>--- tools/perf/Documentation/perf-annotate.txt | 4 ++++ tools/perf/builtin-annotate.c | 2 ++ tools/perf/util/annotate.c | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-)tools/perf/Documentation/perf-annotate.txt +4
-0@@ -43,6 +43,10 @@ OPTIONS --quiet:: Do not show any message. (Suppress -v) +-n:: +--show-nr-samples:: + Show the number of samples for each symbol + -D:: --dump-raw-trace:: Dump raw trace in ASCII.tools/perf/builtin-annotate.c +2
-0@@ -445,6 +445,8 @@ int cmd_annotate(int argc, const char **argv) "Show event group information together"),OPT_BOOLEAN (0 ,"show-total-period" , &symbol_conf.show_total_period,"Show a column with the sum of periods" ), +OPT_BOOLEAN ('n' ,"show-nr-samples" , &symbol_conf.show_nr_samples, +"Show a column with the number of samples" ),OPT_CALLBACK_DEFAULT (0 ,"stdio-color" ,NULL ,"mode" ,"'always' (default), 'never' or 'auto' only applicable to --stdio mode" , stdio__config_color, "always"),tools/perf/util/annotate.c +5
-1@@ -1145,6 +1145,9 @@ static int disasm_line__print(struct disasm_line *dl, struct symbol *sym, u64 stif (symbol_conf.show_total_period)color_fprintf (stdout, color," %11" PRIu64, sample.period); +else if (symbol_conf.show_nr_samples) +color_fprintf (stdout, color," %7" PRIu64, + sample.nr_samples);else color_fprintf (stdout, color," %7.2f" , percent); }@@ -1825,7 +1828,8 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map, width *= evsel->nr_members; graph_dotted_len =printf (" %-*.*s| Source code & Disassembly of %s for %s (%" PRIu64" samples)\n" , - width, width, symbol_conf.show_total_period ?"Event count" :"Percent" , + width, width, symbol_conf.show_total_period ?"Period" : + symbol_conf.show_nr_samples ?"Samples" :"Percent" , d_filename, evsel_name, h->nr_samples); printf("%-*.*s----\n",Signature · 1 line
2.7.4
tip-bot for Taeung Song
merge botperf annotate stdio: Support --show-nr-samples option
Commit-ID: 1ac39372e06f5009982aaaf890fc5bbd044bb047 Gitweb: http://git.kernel.org/tip/1ac39372e06f5009982aaaf890fc5bbd044bb047 Author: Taeung Song <[email protected]> AuthorDate: Fri, 18 Aug 2017 17:46:48 +0900 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Fri, 18 Aug 2017 10:31:53 -0300
perf annotate stdio: Support --show-nr-samples option
Add --show-nr-samples option to "perf annotate" so that it matches "perf report".
Committer note:
Note that it can't be used together with --show-total-period, which seems like a silly limitation, that can be lifted at some point.
Made it bail out if not on --stdio.
--- tools/perf/Documentation/perf-annotate.txt | 4 ++++ tools/perf/builtin-annotate.c | 16 ++++++++++++++-- tools/perf/util/annotate.c | 6 +++++- 3 files changed, 23 insertions(+), 3 deletions(-)
tools/perf/Documentation/perf-annotate.txt +4 -0
@@ -43,6 +43,10 @@ OPTIONS --quiet:: Do not show any message. (Suppress -v) +-n:: +--show-nr-samples:: + Show the number of samples for each symbol + -D:: --dump-raw-trace:: Dump raw trace in ASCII.
tools/perf/builtin-annotate.c +14 -2
@@ -403,7 +403,7 @@ int cmd_annotate(int argc, const char **argv)struct perf_data_file file = { .mode =PERF_DATA_MODE_READ , }; -const struct option options[] = { +struct option options[] = {OPT_STRING ('i' ,"input" , &input_name,"file" ,"input file name" ), OPT_STRING('d', "dsos", &symbol_conf.dso_list_str, "dso[,dso...]",
@@ -445,13 +445,20 @@ int cmd_annotate(int argc, const char **argv) "Show event group information together"),OPT_BOOLEAN (0 ,"show-total-period" , &symbol_conf.show_total_period,"Show a column with the sum of periods" ), +OPT_BOOLEAN ('n' ,"show-nr-samples" , &symbol_conf.show_nr_samples, +"Show a column with the number of samples" ),OPT_CALLBACK_DEFAULT (0 ,"stdio-color" ,NULL ,"mode" ,"'always' (default), 'never' or 'auto' only applicable to --stdio mode" , stdio__config_color,"always" ), OPT_END() }; -int ret =hists__init (); +int ret; + +set_option_flag (options,0 ,"show-total-period" ,PARSE_OPT_EXCLUSIVE ); +set_option_flag (options,0 ,"show-nr-samples" ,PARSE_OPT_EXCLUSIVE ); + + ret =hists__init ();if (ret <0 )return ret;
@@ -467,6 +474,11 @@ int cmd_annotate(int argc, const char **argv) annotate.sym_hist_filter = argv[0 ]; } +if (symbol_conf.show_nr_samples && !annotate.use_stdio) { +pr_err ("--show-nr-samples is only available in --stdio mode at this time\n" ); +return ret; + } +if (quiet)perf_quiet_option ();
tools/perf/util/annotate.c +5 -1
@@ -1145,6 +1145,9 @@ static int disasm_line__print(struct disasm_line *dl, struct symbol *sym, u64 stif (symbol_conf.show_total_period)color_fprintf (stdout, color," %11" PRIu64, sample.period); +else if (symbol_conf.show_nr_samples) +color_fprintf (stdout, color," %7" PRIu64, + sample.nr_samples);else color_fprintf (stdout, color," %7.2f" , percent); }
@@ -1825,7 +1828,8 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map, width *= evsel->nr_members; graph_dotted_len =printf (" %-*.*s| Source code & Disassembly of %s for %s (%" PRIu64" samples)\n" , - width, width, symbol_conf.show_total_period ?"Event count" :"Percent" , + width, width, symbol_conf.show_total_period ?"Period" : + symbol_conf.show_nr_samples ?"Samples" :"Percent" , d_filename, evsel_name, h->nr_samples); printf("%-*.*s----\n",