forked from luck/tmp_suning_uos_patched
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
|
@ -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.
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -1145,6 +1145,9 @@ static int disasm_line__print(struct disasm_line *dl, struct symbol *sym, u64 st
|
|||
if (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",
|
||||
|
|
Loading…
Reference in New Issue
Block a user