mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
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. Signed-off-by: Taeung Song <treeze.taeung@gmail.com> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Milian Wolff <milian.wolff@kdab.com> Cc: Namhyung Kim <namhyung@kernel.org> Link: http://lkml.kernel.org/r/1503046008-5511-1-git-send-email-treeze.taeung@gmail.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
9a57eaf1d2
commit
1ac39372e0
3 changed files with 23 additions and 3 deletions
|
@ -43,6 +43,10 @@ OPTIONS
|
||||||
--quiet::
|
--quiet::
|
||||||
Do not show any message. (Suppress -v)
|
Do not show any message. (Suppress -v)
|
||||||
|
|
||||||
|
-n::
|
||||||
|
--show-nr-samples::
|
||||||
|
Show the number of samples for each symbol
|
||||||
|
|
||||||
-D::
|
-D::
|
||||||
--dump-raw-trace::
|
--dump-raw-trace::
|
||||||
Dump raw trace in ASCII.
|
Dump raw trace in ASCII.
|
||||||
|
|
|
@ -403,7 +403,7 @@ int cmd_annotate(int argc, const char **argv)
|
||||||
struct perf_data_file file = {
|
struct perf_data_file file = {
|
||||||
.mode = PERF_DATA_MODE_READ,
|
.mode = PERF_DATA_MODE_READ,
|
||||||
};
|
};
|
||||||
const struct option options[] = {
|
struct option options[] = {
|
||||||
OPT_STRING('i', "input", &input_name, "file",
|
OPT_STRING('i', "input", &input_name, "file",
|
||||||
"input file name"),
|
"input file name"),
|
||||||
OPT_STRING('d', "dsos", &symbol_conf.dso_list_str, "dso[,dso...]",
|
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"),
|
"Show event group information together"),
|
||||||
OPT_BOOLEAN(0, "show-total-period", &symbol_conf.show_total_period,
|
OPT_BOOLEAN(0, "show-total-period", &symbol_conf.show_total_period,
|
||||||
"Show a column with the sum of periods"),
|
"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",
|
OPT_CALLBACK_DEFAULT(0, "stdio-color", NULL, "mode",
|
||||||
"'always' (default), 'never' or 'auto' only applicable to --stdio mode",
|
"'always' (default), 'never' or 'auto' only applicable to --stdio mode",
|
||||||
stdio__config_color, "always"),
|
stdio__config_color, "always"),
|
||||||
OPT_END()
|
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)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -467,6 +474,11 @@ int cmd_annotate(int argc, const char **argv)
|
||||||
annotate.sym_hist_filter = argv[0];
|
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)
|
if (quiet)
|
||||||
perf_quiet_option();
|
perf_quiet_option();
|
||||||
|
|
||||||
|
|
|
@ -1145,6 +1145,9 @@ static int disasm_line__print(struct disasm_line *dl, struct symbol *sym, u64 st
|
||||||
if (symbol_conf.show_total_period)
|
if (symbol_conf.show_total_period)
|
||||||
color_fprintf(stdout, color, " %11" PRIu64,
|
color_fprintf(stdout, color, " %11" PRIu64,
|
||||||
sample.period);
|
sample.period);
|
||||||
|
else if (symbol_conf.show_nr_samples)
|
||||||
|
color_fprintf(stdout, color, " %7" PRIu64,
|
||||||
|
sample.nr_samples);
|
||||||
else
|
else
|
||||||
color_fprintf(stdout, color, " %7.2f", percent);
|
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;
|
width *= evsel->nr_members;
|
||||||
|
|
||||||
graph_dotted_len = printf(" %-*.*s| Source code & Disassembly of %s for %s (%" PRIu64 " samples)\n",
|
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);
|
d_filename, evsel_name, h->nr_samples);
|
||||||
|
|
||||||
printf("%-*.*s----\n",
|
printf("%-*.*s----\n",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue