perf annotate: Introduce annotation_line__max_percent()
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: 2f025ea0bac2f99a2800f43f139f57c226d3b08b Gitweb: https://git.kernel.org/tip/2f025ea0bac2f99a2800f43f139f57c226d3b08b Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Thu, 15 Mar 2018 17:04:53 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 20 Mar 2018 13:19:30 -0300
perf annotate: Introduce annotation_line__max_percent()
Out of the annotate_browser__write() routine, to be used in the --stdio2 mode.
Cc Adrian Hunter <[email protected]>
Cc Andi Kleen <[email protected]>
Cc David Ahern <[email protected]>
Cc Jin Yao <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Wang Nan <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/ui/browsers/annotate.c | 7 +------ tools/perf/util/annotate.c | 14 ++++++++++++++ tools/perf/util/annotate.h | 3 +++ 3 files changed, 18 insertions(+), 6 deletions(-)
tools/perf/ui/browsers/annotate.c +1 -6
@@ -117,15 +117,10 @@ static void annotate_browser__write(struct ui_browser *browser, void *entry, intint width = browser->width, printed;int i, pcnt_width =annotation__pcnt_width (notes), cycles_width =annotation__cycles_width (notes); -double percent_max =0.0 ; +double percent_max =annotation_line__max_percent (al, notes);char bf[256 ];bool show_title = false; -for (i =0 ; i < notes->nr_events; i++) { -if (al->samples[i].percent > percent_max) - percent_max = al->samples[i].percent; - } -if ((row ==0 ) && (al->offset ==-1 || percent_max ==0.0 )) {if (notes->have_cycles) {if (al->ipc ==0.0 && al->cycles ==0 )
tools/perf/util/annotate.c +14 -0
@@ -2184,6 +2184,20 @@ bool ui__has_annotation(void)return use_browser ==1 && perf_hpp_list.sym; } + +double annotation_line__max_percent (struct annotation_line *al,struct annotation *notes) +{ +double percent_max =0.0 ; +int i; + +for (i =0 ; i < notes->nr_events; i++) { +if (al->samples[i].percent > percent_max) + percent_max = al->samples[i].percent; + } + +return percent_max; +} +int symbol__annotate2 (struct symbol *sym,struct map *map,struct perf_evsel *evsel,struct annotation_options *options,struct arch **parch) {
tools/perf/util/annotate.h +3 -0
@@ -124,6 +124,9 @@ bool disasm_line__is_valid_jump(struct disasm_line *dl, struct symbol *sym);void disasm_line__free (struct disasm_line *dl);struct annotation_line *annotation_line__next (struct annotation_line *pos,struct list_head *head); + +double annotation_line__max_percent (struct annotation_line *al,struct annotation *notes); +int disasm_line__scnprintf (struct disasm_line *dl,char *bf,size_t size,bool raw);size_t disasm__fprintf (struct list_head *head,FILE *fp);void symbol__calc_percent (struct symbol *sym,struct perf_evsel *evsel);