The following commit has been merged into the perf/core branch of tip: Commit-ID: 3f662fc08dddebd7bab654eada1f3e7568959eef Gitweb: https://git.kernel.org/tip/3f662fc08dddebd7bab654eada1f3e7568959eef Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> AuthorDate: Fri, 01 Nov 2019 17:53:02 -03:00 Committer: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> CommitterDate: Tue, 12 Nov 2019 08:20:53 -03:00 perf map: Combine maps__fixup_overlappings with its only use In the process we can kill some of the struct map->groups usage, trying to get rid of this per-full struct map fields getting in the way of sharing a map across father/parent processes. Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx> Cc: Andi Kleen <ak@xxxxxxxxxxxxxxx> Cc: Jiri Olsa <jolsa@xxxxxxxxxx> Cc: Namhyung Kim <namhyung@xxxxxxxxxx> Link: https://lkml.kernel.org/n/tip-e50eqtqw3za24vmbjnqmmcs6@xxxxxxxxxxxxxx Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> --- tools/perf/util/map.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 6c59f55..27d8508 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c @@ -752,8 +752,9 @@ static void __map_groups__insert(struct map_groups *mg, struct map *map) map->groups = mg; } -static int maps__fixup_overlappings(struct maps *maps, struct map *map, FILE *fp) +int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map, FILE *fp) { + struct maps *maps = &mg->maps; struct rb_root *root; struct rb_node *next, *first; int err = 0; @@ -818,7 +819,7 @@ static int maps__fixup_overlappings(struct maps *maps, struct map *map, FILE *fp } before->end = map->start; - __map_groups__insert(pos->groups, before); + __map_groups__insert(mg, before); if (verbose >= 2 && !use_browser) map__fprintf(before, fp); map__put(before); @@ -835,7 +836,7 @@ static int maps__fixup_overlappings(struct maps *maps, struct map *map, FILE *fp after->start = map->end; after->pgoff += map->end - pos->start; assert(pos->map_ip(pos, map->end) == after->map_ip(after, map->end)); - __map_groups__insert(pos->groups, after); + __map_groups__insert(mg, after); if (verbose >= 2 && !use_browser) map__fprintf(after, fp); map__put(after); @@ -853,12 +854,6 @@ out: return err; } -int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map, - FILE *fp) -{ - return maps__fixup_overlappings(&mg->maps, map, fp); -} - /* * XXX This should not really _copy_ te maps, but refcount them. */
![]() |