diff options
author | Namhyung Kim <namhyung.kim@lge.com> | 2012-11-07 02:27:10 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-11-08 09:56:16 -0500 |
commit | 4552cf0f774ae3d24bf31e91324586274a552a66 (patch) | |
tree | 9d49d0579b6ef25b62dfe1ea08b8d80b02c4bf65 /tools | |
parent | 8dfec403e39b7c37fd6e8813bacc01da1e1210ab (diff) |
perf machine: Set kernel data mapping length
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>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/util/machine.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c index 502eec0d4773..4c6754ac6b20 100644 --- a/tools/perf/util/machine.c +++ b/tools/perf/util/machine.c | |||
@@ -84,15 +84,19 @@ int machine__process_lost_event(struct machine *machine __maybe_unused, | |||
84 | static void machine__set_kernel_mmap_len(struct machine *machine, | 84 | static void machine__set_kernel_mmap_len(struct machine *machine, |
85 | union perf_event *event) | 85 | union perf_event *event) |
86 | { | 86 | { |
87 | machine->vmlinux_maps[MAP__FUNCTION]->start = event->mmap.start; | 87 | int i; |
88 | machine->vmlinux_maps[MAP__FUNCTION]->end = (event->mmap.start + | 88 | |
89 | event->mmap.len); | 89 | for (i = 0; i < MAP__NR_TYPES; i++) { |
90 | /* | 90 | machine->vmlinux_maps[i]->start = event->mmap.start; |
91 | * Be a bit paranoid here, some perf.data file came with | 91 | machine->vmlinux_maps[i]->end = (event->mmap.start + |
92 | * a zero sized synthesized MMAP event for the kernel. | 92 | event->mmap.len); |
93 | */ | 93 | /* |
94 | if (machine->vmlinux_maps[MAP__FUNCTION]->end == 0) | 94 | * Be a bit paranoid here, some perf.data file came with |
95 | machine->vmlinux_maps[MAP__FUNCTION]->end = ~0ULL; | 95 | * a zero sized synthesized MMAP event for the kernel. |
96 | */ | ||
97 | if (machine->vmlinux_maps[i]->end == 0) | ||
98 | machine->vmlinux_maps[i]->end = ~0ULL; | ||
99 | } | ||
96 | } | 100 | } |
97 | 101 | ||
98 | static int machine__process_kernel_mmap_event(struct machine *machine, | 102 | static int machine__process_kernel_mmap_event(struct machine *machine, |