From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnaldo Carvalho de Melo Subject: [PATCH 14/44] perf annotate: Move nr_jumps to struct annotation Date: Sat, 24 Mar 2018 17:01:41 -0300 Message-ID: <20180324200211.21326-15-acme@kernel.org> References: <20180324200211.21326-1-acme@kernel.org> Return-path: In-Reply-To: <20180324200211.21326-1-acme@kernel.org> Sender: linux-kernel-owner@vger.kernel.org To: Ingo Molnar Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo , Adrian Hunter , Andi Kleen , David Ahern , Jin Yao , Jiri Olsa , Namhyung Kim , Wang Nan List-Id: linux-perf-users.vger.kernel.org From: Arnaldo Carvalho de Melo This is another information that will be useful for the --stdio2 mode, to provide symbol statistics, so move it from the TUI and change the mark_jump_targets() method to struct annotation. Cc: Adrian Hunter Cc: Andi Kleen Cc: David Ahern Cc: Jin Yao Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan Link: https://lkml.kernel.org/n/tip-kpgle1qxe7thajvrqleuvi80@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/ui/browsers/annotate.c | 13 ++++--------- tools/perf/util/annotate.h | 1 + 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/tools/perf/ui/browsers/annotate.c b/tools/perf/ui/browsers/annotate.c index 6e2eea09a9b0..d05a2f991207 100644 --- a/tools/perf/ui/browsers/annotate.c +++ b/tools/perf/ui/browsers/annotate.c @@ -44,7 +44,6 @@ struct annotate_browser { u64 start; int nr_asm_entries; int nr_entries; - int nr_jumps; bool searching_backwards; u8 addr_width; u8 jumps_width; @@ -965,13 +964,9 @@ int hist_entry__tui_annotate(struct hist_entry *he, struct perf_evsel *evsel, return map_symbol__tui_annotate(&he->ms, evsel, hbt); } -static void annotate_browser__mark_jump_targets(struct annotate_browser *browser, - size_t size) +static void annotation__mark_jump_targets(struct annotation *notes, struct symbol *sym) { - u64 offset; - struct map_symbol *ms = browser->b.priv; - struct symbol *sym = ms->sym; - struct annotation *notes = symbol__annotation(sym); + u64 offset, size = symbol__size(sym); /* PLT symbols contain external offsets */ if (strstr(sym->name, "@plt")) @@ -1000,7 +995,7 @@ static void annotate_browser__mark_jump_targets(struct annotate_browser *browser if (++blt->jump_sources > notes->max_jump_sources) notes->max_jump_sources = blt->jump_sources; - ++browser->nr_jumps; + ++notes->nr_jumps; } } @@ -1093,7 +1088,7 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map, bpos->idx_asm = -1; } - annotate_browser__mark_jump_targets(&browser, size); + annotation__mark_jump_targets(notes, sym); annotation__compute_ipc(notes, size); browser.addr_width = browser.target_width = browser.min_addr_width = hex_width(size); diff --git a/tools/perf/util/annotate.h b/tools/perf/util/annotate.h index b8aca936ed55..897a84712ab4 100644 --- a/tools/perf/util/annotate.h +++ b/tools/perf/util/annotate.h @@ -167,6 +167,7 @@ struct annotation { struct annotation_options *options; struct annotation_line **offsets; int nr_events; + int nr_jumps; int max_jump_sources; bool have_cycles; struct annotated_source *src; -- 2.14.3