* [PATCH 3/4] perf annotate: Support --show-nr-samples option @ 2017-07-11 22:14 Taeung Song 2017-07-12 20:13 ` Arnaldo Carvalho de Melo 0 siblings, 1 reply; 4+ messages in thread From: Taeung Song @ 2017-07-11 22:14 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Namhyung Kim, Milian Wolff, Jiri Olsa Add --show-nr-samples option to perf-annotate so that it corresponds with perf-report. Additionally h->sum is properly renamed h->nr_samples. Cc: Namhyung Kim <namhyung@kernel.org> Cc: Milian Wolff <milian.wolff@kdab.com> Cc: Jiri Olsa <jolsa@redhat.com> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> --- tools/perf/builtin-annotate.c | 2 ++ tools/perf/ui/gtk/annotate.c | 2 +- tools/perf/util/annotate.c | 30 +++++++++++++++++------------- tools/perf/util/annotate.h | 2 +- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index f314661..3cb0223 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c @@ -444,6 +444,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"), diff --git a/tools/perf/ui/gtk/annotate.c b/tools/perf/ui/gtk/annotate.c index d736fd5..0217619 100644 --- a/tools/perf/ui/gtk/annotate.c +++ b/tools/perf/ui/gtk/annotate.c @@ -37,7 +37,7 @@ static int perf_gtk__get_percent(char *buf, size_t size, struct symbol *sym, if (!symbol_conf.event_group && !symhist->addr[dl->offset].nr_samples) return 0; - percent = 100.0 * symhist->addr[dl->offset].nr_samples / symhist->sum; + percent = 100.0 * symhist->addr[dl->offset].nr_samples / symhist->nr_samples; markup = perf_gtk__get_percent_color(percent); if (markup) diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c index f7aeb5f..b19e734 100644 --- a/tools/perf/util/annotate.c +++ b/tools/perf/util/annotate.c @@ -713,7 +713,7 @@ static int __symbol__inc_addr_samples(struct symbol *sym, struct map *map, offset = addr - sym->start; h = annotation__histogram(notes, evidx); - h->sum++; + h->nr_samples++; h->addr[offset].nr_samples++; pr_debug3("%#" PRIx64 " %s: period++ [addr: %#" PRIx64 ", %#" PRIx64 @@ -837,7 +837,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample *samp offset = addr - sym->start; h = annotation__histogram(notes, evidx); - h->sum++; + h->nr_samples++; h->addr[offset].nr_samples++; h->total_period += sample->period; h->addr[offset].period += sample->period; @@ -985,10 +985,10 @@ double disasm__calc_percent(struct annotation *notes, int evidx, s64 offset, p += h->addr[offset++].period; } - if (h->sum) { + if (h->nr_samples) { *nr_samples = hits; *period = p; - percent = 100.0 * hits / h->sum; + percent = 100.0 * hits / h->nr_samples; } } @@ -1165,6 +1165,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, period); + else if (symbol_conf.show_nr_samples) + color_fprintf(stdout, color, " %7" PRIu64, + nr_samples); else color_fprintf(stdout, color, " %7.2f", percent); } @@ -1711,13 +1714,13 @@ static int symbol__get_source_line(struct symbol *sym, struct map *map, struct sym_hist *h = annotation__histogram(notes, evidx); struct rb_root tmp_root = RB_ROOT; int nr_pcnt = 1; - u64 h_sum = h->sum; + u64 h_sum = h->nr_samples; size_t sizeof_src_line = sizeof(struct source_line); if (perf_evsel__is_group_event(evsel)) { for (i = 1; i < evsel->nr_members; i++) { h = annotation__histogram(notes, evidx + i); - h_sum += h->sum; + h_sum += h->nr_samples; } nr_pcnt = evsel->nr_members; sizeof_src_line += (nr_pcnt - 1) * sizeof(src_line->samples); @@ -1743,8 +1746,8 @@ static int symbol__get_source_line(struct symbol *sym, struct map *map, h = annotation__histogram(notes, evidx + k); nr_samples = h->addr[i].nr_samples; - if (h->sum) - percent = 100.0 * nr_samples / h->sum; + if (h->nr_samples) + percent = 100.0 * nr_samples / h->nr_samples; if (percent > percent_max) percent_max = percent; @@ -1816,7 +1819,7 @@ static void symbol__annotate_hits(struct symbol *sym, struct perf_evsel *evsel) if (h->addr[offset].nr_samples != 0) printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2, sym->start + offset, h->addr[offset].nr_samples); - printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum); + printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->nr_samples", h->nr_samples); } int symbol__annotate_printf(struct symbol *sym, struct map *map, @@ -1857,9 +1860,10 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map, graph_dotted_len = printf(" %-*.*s| Source code & Disassembly of %s for %s (%" PRIu64 " %s)\n", width, width, - symbol_conf.show_total_period ? "Event count" : "Percent", + symbol_conf.show_total_period ? "Event count" : + symbol_conf.show_nr_samples ? "Samples" : "Percent", d_filename, evsel_name, - symbol_conf.show_total_period ? h->total_period : h->sum, + symbol_conf.show_total_period ? h->total_period : h->nr_samples, symbol_conf.show_total_period ? "event count" : "samples"); printf("%-*.*s----\n", @@ -1924,10 +1928,10 @@ void symbol__annotate_decay_histogram(struct symbol *sym, int evidx) struct sym_hist *h = annotation__histogram(notes, evidx); int len = symbol__size(sym), offset; - h->sum = 0; + h->nr_samples = 0; for (offset = 0; offset < len; ++offset) { h->addr[offset].nr_samples = h->addr[offset].nr_samples * 7 / 8; - h->sum += h->addr[offset].nr_samples; + h->nr_samples += h->addr[offset].nr_samples; } } diff --git a/tools/perf/util/annotate.h b/tools/perf/util/annotate.h index 6b2e645..e4d444a 100644 --- a/tools/perf/util/annotate.h +++ b/tools/perf/util/annotate.h @@ -86,7 +86,7 @@ struct sym_sample { }; struct sym_hist { - u64 sum; + u64 nr_samples; u64 total_period; struct sym_sample addr[0]; }; -- 2.7.4 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 3/4] perf annotate: Support --show-nr-samples option 2017-07-11 22:14 [PATCH 3/4] perf annotate: Support --show-nr-samples option Taeung Song @ 2017-07-12 20:13 ` Arnaldo Carvalho de Melo 2017-07-13 13:11 ` Taeung Song 2017-07-13 17:10 ` Taeung Song 0 siblings, 2 replies; 4+ messages in thread From: Arnaldo Carvalho de Melo @ 2017-07-12 20:13 UTC (permalink / raw) To: Taeung Song; +Cc: linux-kernel, Namhyung Kim, Milian Wolff, Jiri Olsa Em Wed, Jul 12, 2017 at 07:14:14AM +0900, Taeung Song escreveu: > Add --show-nr-samples option to perf-annotate > so that it corresponds with perf-report. > Additionally h->sum is properly renamed h->nr_samples. Please first do a patch renaming ->sum to ->nr_samples, then a patch supportign --show-nr-samples. We can have this new --show-nr-samples option, but perhaps the best way would be to have a hotkey (I guess we have for period, right) for this? At some point would be good to have some 'S' or other hotkey to save the current set of output modifiers (nr-samples column, period column, etc) in the .perfconfig file. - Arnaldo > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Milian Wolff <milian.wolff@kdab.com> > Cc: Jiri Olsa <jolsa@redhat.com> > Signed-off-by: Taeung Song <treeze.taeung@gmail.com> > --- > tools/perf/builtin-annotate.c | 2 ++ > tools/perf/ui/gtk/annotate.c | 2 +- > tools/perf/util/annotate.c | 30 +++++++++++++++++------------- > tools/perf/util/annotate.h | 2 +- > 4 files changed, 21 insertions(+), 15 deletions(-) > > diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c > index f314661..3cb0223 100644 > --- a/tools/perf/builtin-annotate.c > +++ b/tools/perf/builtin-annotate.c > @@ -444,6 +444,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"), > diff --git a/tools/perf/ui/gtk/annotate.c b/tools/perf/ui/gtk/annotate.c > index d736fd5..0217619 100644 > --- a/tools/perf/ui/gtk/annotate.c > +++ b/tools/perf/ui/gtk/annotate.c > @@ -37,7 +37,7 @@ static int perf_gtk__get_percent(char *buf, size_t size, struct symbol *sym, > if (!symbol_conf.event_group && !symhist->addr[dl->offset].nr_samples) > return 0; > > - percent = 100.0 * symhist->addr[dl->offset].nr_samples / symhist->sum; > + percent = 100.0 * symhist->addr[dl->offset].nr_samples / symhist->nr_samples; > > markup = perf_gtk__get_percent_color(percent); > if (markup) > diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c > index f7aeb5f..b19e734 100644 > --- a/tools/perf/util/annotate.c > +++ b/tools/perf/util/annotate.c > @@ -713,7 +713,7 @@ static int __symbol__inc_addr_samples(struct symbol *sym, struct map *map, > > offset = addr - sym->start; > h = annotation__histogram(notes, evidx); > - h->sum++; > + h->nr_samples++; > h->addr[offset].nr_samples++; > > pr_debug3("%#" PRIx64 " %s: period++ [addr: %#" PRIx64 ", %#" PRIx64 > @@ -837,7 +837,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample *samp > > offset = addr - sym->start; > h = annotation__histogram(notes, evidx); > - h->sum++; > + h->nr_samples++; > h->addr[offset].nr_samples++; > h->total_period += sample->period; > h->addr[offset].period += sample->period; > @@ -985,10 +985,10 @@ double disasm__calc_percent(struct annotation *notes, int evidx, s64 offset, > p += h->addr[offset++].period; > } > > - if (h->sum) { > + if (h->nr_samples) { > *nr_samples = hits; > *period = p; > - percent = 100.0 * hits / h->sum; > + percent = 100.0 * hits / h->nr_samples; > } > } > > @@ -1165,6 +1165,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, > period); > + else if (symbol_conf.show_nr_samples) > + color_fprintf(stdout, color, " %7" PRIu64, > + nr_samples); > else > color_fprintf(stdout, color, " %7.2f", percent); > } > @@ -1711,13 +1714,13 @@ static int symbol__get_source_line(struct symbol *sym, struct map *map, > struct sym_hist *h = annotation__histogram(notes, evidx); > struct rb_root tmp_root = RB_ROOT; > int nr_pcnt = 1; > - u64 h_sum = h->sum; > + u64 h_sum = h->nr_samples; > size_t sizeof_src_line = sizeof(struct source_line); > > if (perf_evsel__is_group_event(evsel)) { > for (i = 1; i < evsel->nr_members; i++) { > h = annotation__histogram(notes, evidx + i); > - h_sum += h->sum; > + h_sum += h->nr_samples; > } > nr_pcnt = evsel->nr_members; > sizeof_src_line += (nr_pcnt - 1) * sizeof(src_line->samples); > @@ -1743,8 +1746,8 @@ static int symbol__get_source_line(struct symbol *sym, struct map *map, > > h = annotation__histogram(notes, evidx + k); > nr_samples = h->addr[i].nr_samples; > - if (h->sum) > - percent = 100.0 * nr_samples / h->sum; > + if (h->nr_samples) > + percent = 100.0 * nr_samples / h->nr_samples; > > if (percent > percent_max) > percent_max = percent; > @@ -1816,7 +1819,7 @@ static void symbol__annotate_hits(struct symbol *sym, struct perf_evsel *evsel) > if (h->addr[offset].nr_samples != 0) > printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2, > sym->start + offset, h->addr[offset].nr_samples); > - printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum); > + printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->nr_samples", h->nr_samples); > } > > int symbol__annotate_printf(struct symbol *sym, struct map *map, > @@ -1857,9 +1860,10 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map, > > graph_dotted_len = printf(" %-*.*s| Source code & Disassembly of %s for %s (%" PRIu64 " %s)\n", > width, width, > - symbol_conf.show_total_period ? "Event count" : "Percent", > + symbol_conf.show_total_period ? "Event count" : > + symbol_conf.show_nr_samples ? "Samples" : "Percent", > d_filename, evsel_name, > - symbol_conf.show_total_period ? h->total_period : h->sum, > + symbol_conf.show_total_period ? h->total_period : h->nr_samples, > symbol_conf.show_total_period ? "event count" : "samples"); > > printf("%-*.*s----\n", > @@ -1924,10 +1928,10 @@ void symbol__annotate_decay_histogram(struct symbol *sym, int evidx) > struct sym_hist *h = annotation__histogram(notes, evidx); > int len = symbol__size(sym), offset; > > - h->sum = 0; > + h->nr_samples = 0; > for (offset = 0; offset < len; ++offset) { > h->addr[offset].nr_samples = h->addr[offset].nr_samples * 7 / 8; > - h->sum += h->addr[offset].nr_samples; > + h->nr_samples += h->addr[offset].nr_samples; > } > } > > diff --git a/tools/perf/util/annotate.h b/tools/perf/util/annotate.h > index 6b2e645..e4d444a 100644 > --- a/tools/perf/util/annotate.h > +++ b/tools/perf/util/annotate.h > @@ -86,7 +86,7 @@ struct sym_sample { > }; > > struct sym_hist { > - u64 sum; > + u64 nr_samples; > u64 total_period; > struct sym_sample addr[0]; > }; > -- > 2.7.4 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 3/4] perf annotate: Support --show-nr-samples option 2017-07-12 20:13 ` Arnaldo Carvalho de Melo @ 2017-07-13 13:11 ` Taeung Song 2017-07-13 17:10 ` Taeung Song 1 sibling, 0 replies; 4+ messages in thread From: Taeung Song @ 2017-07-13 13:11 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Namhyung Kim, Milian Wolff, Jiri Olsa Arnaldo, Additionally I think we need to calculate the percentage with the sample period, not number of samples like perf-report. What do you think about it ? For examples, perf-annotate figure out the percentage with number of samples like below ui/gtk/annotate.c: 23 static int perf_gtk__get_percent(char *buf, size_t size, struct symbol *sym, 24 struct disasm_line *dl, int evidx) 25 { ... 36 symhist = annotation__histogram(symbol__annotation(sym), evidx); 37 if (!symbol_conf.event_group && !symhist->addr[dl->offset]) 38 return 0; 39 40 percent = 100.0 * symhist->addr[dl->offset] / symhist->sum; But perf-report do it with the sample period like below. ui/hist.c: 363 HPP_PERCENT_FNS(overhead, period) 364 HPP_PERCENT_FNS(overhead_sys, period_sys) 365 HPP_PERCENT_FNS(overhead_us, period_us) 366 HPP_PERCENT_FNS(overhead_guest_sys, period_guest_sys) 367 HPP_PERCENT_FNS(overhead_guest_us, period_guest_us) 368 HPP_PERCENT_ACC_FNS(overhead_acc, period) Thanks, Taeung On 07/13/2017 05:13 AM, Arnaldo Carvalho de Melo wrote: > Em Wed, Jul 12, 2017 at 07:14:14AM +0900, Taeung Song escreveu: >> Add --show-nr-samples option to perf-annotate >> so that it corresponds with perf-report. >> Additionally h->sum is properly renamed h->nr_samples. > > Please first do a patch renaming ->sum to ->nr_samples, then a patch > supportign --show-nr-samples. > > We can have this new --show-nr-samples option, but perhaps the best way > would be to have a hotkey (I guess we have for period, right) for this? > > At some point would be good to have some 'S' or other hotkey to save the > current set of output modifiers (nr-samples column, period column, etc) > in the .perfconfig file. > > - Arnaldo > >> Cc: Namhyung Kim <namhyung@kernel.org> >> Cc: Milian Wolff <milian.wolff@kdab.com> >> Cc: Jiri Olsa <jolsa@redhat.com> >> Signed-off-by: Taeung Song <treeze.taeung@gmail.com> >> --- >> tools/perf/builtin-annotate.c | 2 ++ >> tools/perf/ui/gtk/annotate.c | 2 +- >> tools/perf/util/annotate.c | 30 +++++++++++++++++------------- >> tools/perf/util/annotate.h | 2 +- >> 4 files changed, 21 insertions(+), 15 deletions(-) >> >> diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c >> index f314661..3cb0223 100644 >> --- a/tools/perf/builtin-annotate.c >> +++ b/tools/perf/builtin-annotate.c >> @@ -444,6 +444,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"), >> diff --git a/tools/perf/ui/gtk/annotate.c b/tools/perf/ui/gtk/annotate.c >> index d736fd5..0217619 100644 >> --- a/tools/perf/ui/gtk/annotate.c >> +++ b/tools/perf/ui/gtk/annotate.c >> @@ -37,7 +37,7 @@ static int perf_gtk__get_percent(char *buf, size_t size, struct symbol *sym, >> if (!symbol_conf.event_group && !symhist->addr[dl->offset].nr_samples) >> return 0; >> >> - percent = 100.0 * symhist->addr[dl->offset].nr_samples / symhist->sum; >> + percent = 100.0 * symhist->addr[dl->offset].nr_samples / symhist->nr_samples; >> >> markup = perf_gtk__get_percent_color(percent); >> if (markup) >> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c >> index f7aeb5f..b19e734 100644 >> --- a/tools/perf/util/annotate.c >> +++ b/tools/perf/util/annotate.c >> @@ -713,7 +713,7 @@ static int __symbol__inc_addr_samples(struct symbol *sym, struct map *map, >> >> offset = addr - sym->start; >> h = annotation__histogram(notes, evidx); >> - h->sum++; >> + h->nr_samples++; >> h->addr[offset].nr_samples++; >> >> pr_debug3("%#" PRIx64 " %s: period++ [addr: %#" PRIx64 ", %#" PRIx64 >> @@ -837,7 +837,7 @@ int hist_entry__inc_addr_samples(struct hist_entry *he, struct perf_sample *samp >> >> offset = addr - sym->start; >> h = annotation__histogram(notes, evidx); >> - h->sum++; >> + h->nr_samples++; >> h->addr[offset].nr_samples++; >> h->total_period += sample->period; >> h->addr[offset].period += sample->period; >> @@ -985,10 +985,10 @@ double disasm__calc_percent(struct annotation *notes, int evidx, s64 offset, >> p += h->addr[offset++].period; >> } >> >> - if (h->sum) { >> + if (h->nr_samples) { >> *nr_samples = hits; >> *period = p; >> - percent = 100.0 * hits / h->sum; >> + percent = 100.0 * hits / h->nr_samples; >> } >> } >> >> @@ -1165,6 +1165,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, >> period); >> + else if (symbol_conf.show_nr_samples) >> + color_fprintf(stdout, color, " %7" PRIu64, >> + nr_samples); >> else >> color_fprintf(stdout, color, " %7.2f", percent); >> } >> @@ -1711,13 +1714,13 @@ static int symbol__get_source_line(struct symbol *sym, struct map *map, >> struct sym_hist *h = annotation__histogram(notes, evidx); >> struct rb_root tmp_root = RB_ROOT; >> int nr_pcnt = 1; >> - u64 h_sum = h->sum; >> + u64 h_sum = h->nr_samples; >> size_t sizeof_src_line = sizeof(struct source_line); >> >> if (perf_evsel__is_group_event(evsel)) { >> for (i = 1; i < evsel->nr_members; i++) { >> h = annotation__histogram(notes, evidx + i); >> - h_sum += h->sum; >> + h_sum += h->nr_samples; >> } >> nr_pcnt = evsel->nr_members; >> sizeof_src_line += (nr_pcnt - 1) * sizeof(src_line->samples); >> @@ -1743,8 +1746,8 @@ static int symbol__get_source_line(struct symbol *sym, struct map *map, >> >> h = annotation__histogram(notes, evidx + k); >> nr_samples = h->addr[i].nr_samples; >> - if (h->sum) >> - percent = 100.0 * nr_samples / h->sum; >> + if (h->nr_samples) >> + percent = 100.0 * nr_samples / h->nr_samples; >> >> if (percent > percent_max) >> percent_max = percent; >> @@ -1816,7 +1819,7 @@ static void symbol__annotate_hits(struct symbol *sym, struct perf_evsel *evsel) >> if (h->addr[offset].nr_samples != 0) >> printf("%*" PRIx64 ": %" PRIu64 "\n", BITS_PER_LONG / 2, >> sym->start + offset, h->addr[offset].nr_samples); >> - printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->sum", h->sum); >> + printf("%*s: %" PRIu64 "\n", BITS_PER_LONG / 2, "h->nr_samples", h->nr_samples); >> } >> >> int symbol__annotate_printf(struct symbol *sym, struct map *map, >> @@ -1857,9 +1860,10 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map, >> >> graph_dotted_len = printf(" %-*.*s| Source code & Disassembly of %s for %s (%" PRIu64 " %s)\n", >> width, width, >> - symbol_conf.show_total_period ? "Event count" : "Percent", >> + symbol_conf.show_total_period ? "Event count" : >> + symbol_conf.show_nr_samples ? "Samples" : "Percent", >> d_filename, evsel_name, >> - symbol_conf.show_total_period ? h->total_period : h->sum, >> + symbol_conf.show_total_period ? h->total_period : h->nr_samples, >> symbol_conf.show_total_period ? "event count" : "samples"); >> >> printf("%-*.*s----\n", >> @@ -1924,10 +1928,10 @@ void symbol__annotate_decay_histogram(struct symbol *sym, int evidx) >> struct sym_hist *h = annotation__histogram(notes, evidx); >> int len = symbol__size(sym), offset; >> >> - h->sum = 0; >> + h->nr_samples = 0; >> for (offset = 0; offset < len; ++offset) { >> h->addr[offset].nr_samples = h->addr[offset].nr_samples * 7 / 8; >> - h->sum += h->addr[offset].nr_samples; >> + h->nr_samples += h->addr[offset].nr_samples; >> } >> } >> >> diff --git a/tools/perf/util/annotate.h b/tools/perf/util/annotate.h >> index 6b2e645..e4d444a 100644 >> --- a/tools/perf/util/annotate.h >> +++ b/tools/perf/util/annotate.h >> @@ -86,7 +86,7 @@ struct sym_sample { >> }; >> >> struct sym_hist { >> - u64 sum; >> + u64 nr_samples; >> u64 total_period; >> struct sym_sample addr[0]; >> }; >> -- >> 2.7.4 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 3/4] perf annotate: Support --show-nr-samples option 2017-07-12 20:13 ` Arnaldo Carvalho de Melo 2017-07-13 13:11 ` Taeung Song @ 2017-07-13 17:10 ` Taeung Song 1 sibling, 0 replies; 4+ messages in thread From: Taeung Song @ 2017-07-13 17:10 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: linux-kernel, Namhyung Kim, Milian Wolff, Jiri Olsa On 07/13/2017 05:13 AM, Arnaldo Carvalho de Melo wrote: > Em Wed, Jul 12, 2017 at 07:14:14AM +0900, Taeung Song escreveu: >> Add --show-nr-samples option to perf-annotate >> so that it corresponds with perf-report. >> Additionally h->sum is properly renamed h->nr_samples. > > Please first do a patch renaming ->sum to ->nr_samples, then a patch > supportign --show-nr-samples. > > We can have this new --show-nr-samples option, but perhaps the best way > would be to have a hotkey (I guess we have for period, right) for this? > You mean we need to add a hotkey for --show-nr-samples on the anntoate TUI browser, right ? I added a 'e' hotkey in other patch, not this patch Change it ? > At some point would be good to have some 'S' or other hotkey to save the > current set of output modifiers (nr-samples column, period column, etc) > in the .perfconfig file. I don't understand what you said.. Is related a hotkey with things in .perfconfig file ? I thought hotkeys exist on only annotate TUI browser.. You mean the short option for --show-nr-samples ? Thanks, Taeung > > - Arnaldo SNIP ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-07-13 17:10 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-07-11 22:14 [PATCH 3/4] perf annotate: Support --show-nr-samples option Taeung Song 2017-07-12 20:13 ` Arnaldo Carvalho de Melo 2017-07-13 13:11 ` Taeung Song 2017-07-13 17:10 ` Taeung Song
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox