Commit c849c12c authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo

perf annotate: Pass struct annotation_options to symbol__calc_lines()

Pass struct annotation_options to symbol__calc_lines(), to carry on and
pass the percent_type value.
Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/20180804130521.11408-14-jolsa@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 796ca33d
...@@ -1868,7 +1868,8 @@ int symbol__annotate(struct symbol *sym, struct map *map, ...@@ -1868,7 +1868,8 @@ int symbol__annotate(struct symbol *sym, struct map *map,
return symbol__disassemble(sym, &args); return symbol__disassemble(sym, &args);
} }
static void insert_source_line(struct rb_root *root, struct annotation_line *al) static void insert_source_line(struct rb_root *root, struct annotation_line *al,
struct annotation_options *opts)
{ {
struct annotation_line *iter; struct annotation_line *iter;
struct rb_node **p = &root->rb_node; struct rb_node **p = &root->rb_node;
...@@ -1883,7 +1884,7 @@ static void insert_source_line(struct rb_root *root, struct annotation_line *al) ...@@ -1883,7 +1884,7 @@ static void insert_source_line(struct rb_root *root, struct annotation_line *al)
if (ret == 0) { if (ret == 0) {
for (i = 0; i < al->data_nr; i++) { for (i = 0; i < al->data_nr; i++) {
iter->data[i].percent_sum += annotation_data__percent(&al->data[i], iter->data[i].percent_sum += annotation_data__percent(&al->data[i],
PERCENT_HITS_LOCAL); opts->percent_type);
} }
return; return;
} }
...@@ -1896,7 +1897,7 @@ static void insert_source_line(struct rb_root *root, struct annotation_line *al) ...@@ -1896,7 +1897,7 @@ static void insert_source_line(struct rb_root *root, struct annotation_line *al)
for (i = 0; i < al->data_nr; i++) { for (i = 0; i < al->data_nr; i++) {
al->data[i].percent_sum = annotation_data__percent(&al->data[i], al->data[i].percent_sum = annotation_data__percent(&al->data[i],
PERCENT_HITS_LOCAL); opts->percent_type);
} }
rb_link_node(&al->rb_node, parent, p); rb_link_node(&al->rb_node, parent, p);
...@@ -2372,7 +2373,8 @@ void annotation__update_column_widths(struct annotation *notes) ...@@ -2372,7 +2373,8 @@ void annotation__update_column_widths(struct annotation *notes)
} }
static void annotation__calc_lines(struct annotation *notes, struct map *map, static void annotation__calc_lines(struct annotation *notes, struct map *map,
struct rb_root *root) struct rb_root *root,
struct annotation_options *opts)
{ {
struct annotation_line *al; struct annotation_line *al;
struct rb_root tmp_root = RB_ROOT; struct rb_root tmp_root = RB_ROOT;
...@@ -2385,7 +2387,7 @@ static void annotation__calc_lines(struct annotation *notes, struct map *map, ...@@ -2385,7 +2387,7 @@ static void annotation__calc_lines(struct annotation *notes, struct map *map,
double percent; double percent;
percent = annotation_data__percent(&al->data[i], percent = annotation_data__percent(&al->data[i],
PERCENT_HITS_LOCAL); opts->percent_type);
if (percent > percent_max) if (percent > percent_max)
percent_max = percent; percent_max = percent;
...@@ -2396,18 +2398,19 @@ static void annotation__calc_lines(struct annotation *notes, struct map *map, ...@@ -2396,18 +2398,19 @@ static void annotation__calc_lines(struct annotation *notes, struct map *map,
al->path = get_srcline(map->dso, notes->start + al->offset, NULL, al->path = get_srcline(map->dso, notes->start + al->offset, NULL,
false, true, notes->start + al->offset); false, true, notes->start + al->offset);
insert_source_line(&tmp_root, al); insert_source_line(&tmp_root, al, opts);
} }
resort_source_line(root, &tmp_root); resort_source_line(root, &tmp_root);
} }
static void symbol__calc_lines(struct symbol *sym, struct map *map, static void symbol__calc_lines(struct symbol *sym, struct map *map,
struct rb_root *root) struct rb_root *root,
struct annotation_options *opts)
{ {
struct annotation *notes = symbol__annotation(sym); struct annotation *notes = symbol__annotation(sym);
annotation__calc_lines(notes, map, root); annotation__calc_lines(notes, map, root, opts);
} }
int symbol__tty_annotate2(struct symbol *sym, struct map *map, int symbol__tty_annotate2(struct symbol *sym, struct map *map,
...@@ -2424,7 +2427,7 @@ int symbol__tty_annotate2(struct symbol *sym, struct map *map, ...@@ -2424,7 +2427,7 @@ int symbol__tty_annotate2(struct symbol *sym, struct map *map,
if (opts->print_lines) { if (opts->print_lines) {
srcline_full_filename = opts->full_path; srcline_full_filename = opts->full_path;
symbol__calc_lines(sym, map, &source_line); symbol__calc_lines(sym, map, &source_line, opts);
print_summary(&source_line, dso->long_name); print_summary(&source_line, dso->long_name);
} }
...@@ -2451,7 +2454,7 @@ int symbol__tty_annotate(struct symbol *sym, struct map *map, ...@@ -2451,7 +2454,7 @@ int symbol__tty_annotate(struct symbol *sym, struct map *map,
if (opts->print_lines) { if (opts->print_lines) {
srcline_full_filename = opts->full_path; srcline_full_filename = opts->full_path;
symbol__calc_lines(sym, map, &source_line); symbol__calc_lines(sym, map, &source_line, opts);
print_summary(&source_line, dso->long_name); print_summary(&source_line, dso->long_name);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment