Messages in this thread Patch in this message | | | Date | Sun, 29 Sep 2019 17:44:21 +0200 | From | Jiri Olsa <> | Subject | Re: [PATCH 1/4] perf map: fix overlapped map handling |
| |
On Sat, Sep 28, 2019 at 01:39:00AM +0000, Steve MacLean wrote:
SNIP
> Before: > > perf script --show-mmap-events 2>&1 | grep -e MMAP -e unknown |\ > grep libcoreclr.so | head -n 4 > dotnet 1907 373352.698780: PERF_RECORD_MMAP2 1907/1907: \ > [0x7fe615726000(0x768000) @ 0 08:02 5510620 765057155]: \ > r-xp .../3.0.0-preview9-19423-09/libcoreclr.so > dotnet 1907 373352.701091: PERF_RECORD_MMAP2 1907/1907: \ > [0x7fe615974000(0x1000) @ 0x24e000 08:02 5510620 765057155]: \ > rwxp .../3.0.0-preview9-19423-09/libcoreclr.so > dotnet 1907 373352.701241: PERF_RECORD_MMAP2 1907/1907: \ > [0x7fe615c42000(0x1000) @ 0x51c000 08:02 5510620 765057155]: \ > rwxp .../3.0.0-preview9-19423-09/libcoreclr.so > dotnet 1907 373352.705249: 250000 cpu-clock: \ > 7fe6159a1f99 [unknown] \ > (.../3.0.0-preview9-19423-09/libcoreclr.so) > > After: > > perf script --show-mmap-events 2>&1 | grep -e MMAP -e unknown |\ > grep libcoreclr.so | head -n 4 > dotnet 1907 373352.698780: PERF_RECORD_MMAP2 1907/1907: \ > [0x7fe615726000(0x768000) @ 0 08:02 5510620 765057155]: \ > r-xp .../3.0.0-preview9-19423-09/libcoreclr.so > dotnet 1907 373352.701091: PERF_RECORD_MMAP2 1907/1907: \ > [0x7fe615974000(0x1000) @ 0x24e000 08:02 5510620 765057155]: \ > rwxp .../3.0.0-preview9-19423-09/libcoreclr.so > dotnet 1907 373352.701241: PERF_RECORD_MMAP2 1907/1907: \ > [0x7fe615c42000(0x1000) @ 0x51c000 08:02 5510620 765057155]: \ > rwxp .../3.0.0-preview9-19423-09/libcoreclr.so > > All the [unknown] symbols were resolved. > > Tested-by: Brian Robbins <brianrob@microsoft.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Arnaldo Carvalho de Melo <acme@kernel.org> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> > Cc: Jiri Olsa <jolsa@redhat.com> > Cc: Namhyung Kim <namhyung@kernel.org> > Cc: Stephane Eranian <eranian@google.com> > Cc: linux-kernel@vger.kernel.org > Signed-off-by: Steve MacLean <Steve.MacLean@Microsoft.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
thanks, jirka
> --- > tools/perf/util/map.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c > index 5b83ed1..eec9b28 100644 > --- a/tools/perf/util/map.c > +++ b/tools/perf/util/map.c > @@ -1,5 +1,6 @@ > // SPDX-License-Identifier: GPL-2.0 > #include "symbol.h" > +#include <assert.h> > #include <errno.h> > #include <inttypes.h> > #include <limits.h> > @@ -850,6 +851,8 @@ 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); > if (verbose >= 2 && !use_browser) > map__fprintf(after, fp); > -- > 2.7.4
| |