pref tools: Make 'struct addr_map_symbol' contain 'struct map_symbol'
A message that is not in the archive (sent off-list or not yet received): [email protected]
The following commit has been merged into the perf/core branch of tip:
Commit-ID: d46a4cdf49937b0b3abeb2cd7fa5dc65795e7ea7 Gitweb: https://git.kernel.org/tip/d46a4cdf49937b0b3abeb2cd7fa5dc65795e7ea7 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Mon, 04 Nov 2019 15:57:38 -03:00 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitterDate: Tue, 12 Nov 2019 08:20:53 -03:00
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.
--- tools/perf/arch/s390/annotate/instructions.c | 6 +- tools/perf/builtin-annotate.c | 2 +- tools/perf/ui/browsers/hists.c | 20 +--- tools/perf/util/annotate.c | 43 ++++----- tools/perf/util/hist.c | 54 ++++++------ tools/perf/util/machine.c | 8 +- tools/perf/util/map.c | 12 +-- tools/perf/util/map_symbol.h | 3 +- tools/perf/util/mem-events.c | 2 +- tools/perf/util/sort.c | 89 ++++++++----------- 10 files changed, 114 insertions(+), 125 deletions(-)
tools/perf/arch/s390/annotate/instructions.c +3 -3
@@ -7,7 +7,7 @@ static int s390_call__parse(struct arch *arch, struct ins_operands *ops,char *endptr, *tok, *name;struct map *map = ms->map;struct addr_map_symbol target = { - .map = map, + .ms = { .map = map, }, }; tok =strchr (ops->raw,',' );
@@ -39,8 +39,8 @@ static int s390_call__parse(struct arch *arch, struct ins_operands *ops, target.addr =map__objdump_2mem (map, ops->target.addr);if (map_groups__find_ams (map->groups, &target) ==0 && -map__rip_2objdump (target.map, map->map_ip (target.map, target.addr)) == ops->target.addr) - ops->target.sym = target.sym; +map__rip_2objdump (target.ms.map, map->map_ip (target.ms.map, target.addr)) == ops->target.addr) + ops->target.sym = target.ms.sym;return 0 ; }
tools/perf/builtin-annotate.c +1 -1
@@ -83,7 +83,7 @@ static void process_basic_block(struct addr_map_symbol *start,struct addr_map_symbol *end, struct branch_flags *flags) { - struct symbol *sym = start->sym; + struct symbol *sym = start->ms.sym;struct annotation *notes = sym ?symbol__annotation (sym) :NULL ;struct block_range_iter iter;struct block_range *entry;
tools/perf/ui/browsers/hists.c +8 -12
@@ -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],
tools/perf/util/annotate.c +22 -21
126 lines not on this page · raw message
tools/perf/util/hist.c +27 -27
134 lines not on this page · raw message
tools/perf/util/machine.c +4 -4
@@ -1968,8 +1968,8 @@ static void ip__resolve_ams(struct thread *thread, ams->addr = ip; ams->al_addr = al.addr; - ams->sym = al.sym; - ams->map = al.map; + ams->ms.sym = al.sym; + ams->ms.map = al.map; ams->phys_addr =0 ; }
@@ -1985,8 +1985,8 @@ static void ip__resolve_data(struct thread *thread, ams->addr = addr; ams->al_addr = al.addr; - ams->sym = al.sym; - ams->map = al.map; + ams->ms.sym = al.sym; + ams->ms.map = al.map; ams->phys_addr = phys_addr; }
tools/perf/util/map.c +6 -6
@@ -705,18 +705,18 @@ struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg,int map_groups__find_ams (struct map_groups *mg,struct addr_map_symbol *ams) { -if (ams->addr < ams->map->start || ams->addr >= ams->map->end) { +if (ams->addr < ams->ms.map->start || ams->addr >= ams->ms.map->end) {if (mg ==NULL )return -1 ; - ams->map =map_groups__find (mg, ams->addr); -if (ams->map ==NULL ) + ams->ms.map =map_groups__find (mg, ams->addr); +if (ams->ms.map ==NULL )return -1 ; } - ams->al_addr = ams->map->map_ip (ams->map, ams->addr); - ams->sym =map__find_symbol (ams->map, ams->al_addr); + ams->al_addr = ams->ms.map->map_ip (ams->ms.map, ams->addr); + ams->ms.sym =map__find_symbol (ams->ms.map, ams->al_addr); -return ams->sym ?0 :-1 ; +return ams->ms.sym ?0 :-1 ; }static size_t maps__fprintf (struct maps *maps,FILE *fp)
tools/perf/util/map_symbol.h +1 -2
@@ -13,8 +13,7 @@ struct map_symbol { };struct addr_map_symbol { -struct map *map; -struct symbol *sym; +struct map_symbol ms;u64 addr;u64 al_addr;u64 phys_addr;
tools/perf/util/mem-events.c +1 -1
@@ -410,7 +410,7 @@ do { \return -1 ; } -if (!mi->daddr.map || !mi->iaddr.map) { +if (!mi->daddr.ms.map || !mi->iaddr.ms.map) { stats->nomap++;return -1 ; }
tools/perf/util/sort.c +41 -48
241 lines not on this page · raw message