Skip to content

Commit

Permalink
perf machine: Set kernel data mapping length
Browse files Browse the repository at this point in the history
Currently only text (function) mapping was set, so that the kernel data
addresses couldn't parsed correctly.  Fix it.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1352273234-28912-3-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
Namhyung Kim authored and Arnaldo Carvalho de Melo committed Nov 8, 2012
1 parent 8dfec40 commit 4552cf0
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions tools/perf/util/machine.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,15 +84,19 @@ int machine__process_lost_event(struct machine *machine __maybe_unused,
static void machine__set_kernel_mmap_len(struct machine *machine,
union perf_event *event)
{
machine->vmlinux_maps[MAP__FUNCTION]->start = event->mmap.start;
machine->vmlinux_maps[MAP__FUNCTION]->end = (event->mmap.start +
event->mmap.len);
/*
* Be a bit paranoid here, some perf.data file came with
* a zero sized synthesized MMAP event for the kernel.
*/
if (machine->vmlinux_maps[MAP__FUNCTION]->end == 0)
machine->vmlinux_maps[MAP__FUNCTION]->end = ~0ULL;
int i;

for (i = 0; i < MAP__NR_TYPES; i++) {
machine->vmlinux_maps[i]->start = event->mmap.start;
machine->vmlinux_maps[i]->end = (event->mmap.start +
event->mmap.len);
/*
* Be a bit paranoid here, some perf.data file came with
* a zero sized synthesized MMAP event for the kernel.
*/
if (machine->vmlinux_maps[i]->end == 0)
machine->vmlinux_maps[i]->end = ~0ULL;
}
}

static int machine__process_kernel_mmap_event(struct machine *machine,
Expand Down

0 comments on commit 4552cf0

Please sign in to comment.