summaryrefslogtreecommitdiffstats
path: root/tools/perf/ui/browsers/hists.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2019-11-04 19:57:38 +0100
committerArnaldo Carvalho de Melo <acme@redhat.com>2019-11-12 12:20:53 +0100
commitd46a4cdf49937b0b3abeb2cd7fa5dc65795e7ea7 (patch)
tree0537e9384efbdcf3d97e4ab1c4dd8bd8e751e5c4 /tools/perf/ui/browsers/hists.c
parentperf callchain: Use 'struct map_symbol' in 'struct callchain_cursor_node' (diff)
downloadlinux-d46a4cdf49937b0b3abeb2cd7fa5dc65795e7ea7.tar.xz
linux-d46a4cdf49937b0b3abeb2cd7fa5dc65795e7ea7.zip
pref tools: Make 'struct addr_map_symbol' contain 'struct map_symbol'
So that we pass that substructure around and with it consolidate lots of functions that receive a (map, symbol) pair and now can receive just a 'struct map_symbol' pointer. This further paves the way to add 'struct map_groups' to 'struct map_symbol' so that we can have all we need for annotation so that we can ditch 'struct map'->groups, i.e. have the map_groups pointer in a more central place, avoiding the pointer in the 'struct map' that have tons of instances. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lkml.kernel.org/n/tip-fs90ttd9q12l7989fo7pw81q@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/ui/browsers/hists.c')
-rw-r--r--tools/perf/ui/browsers/hists.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 334afc2139e7..4d2d0acfd41a 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -2405,16 +2405,15 @@ do_annotate(struct hist_browser *browser, struct popup_action *act)
static int
add_annotate_opt(struct hist_browser *browser __maybe_unused,
struct popup_action *act, char **optstr,
- struct map *map, struct symbol *sym)
+ struct map_symbol *ms)
{
- if (sym == NULL || map->dso->annotate_warned)
+ if (ms->sym == NULL || ms->map->dso->annotate_warned)
return 0;
- if (asprintf(optstr, "Annotate %s", sym->name) < 0)
+ if (asprintf(optstr, "Annotate %s", ms->sym->name) < 0)
return 0;
- act->ms.map = map;
- act->ms.sym = sym;
+ act->ms = *ms;
act->fn = do_annotate;
return 1;
}
@@ -3115,20 +3114,17 @@ static int perf_evsel__hists_browse(struct evsel *evsel, int nr_events,
nr_options += add_annotate_opt(browser,
&actions[nr_options],
&options[nr_options],
- bi->from.map,
- bi->from.sym);
- if (bi->to.sym != bi->from.sym)
+ &bi->from.ms);
+ if (bi->to.ms.sym != bi->from.ms.sym)
nr_options += add_annotate_opt(browser,
&actions[nr_options],
&options[nr_options],
- bi->to.map,
- bi->to.sym);
+ &bi->to.ms);
} else {
nr_options += add_annotate_opt(browser,
&actions[nr_options],
&options[nr_options],
- browser->selection->map,
- browser->selection->sym);
+ browser->selection);
}
skip_annotation:
nr_options += add_thread_opt(browser, &actions[nr_options],