perf kmem: Fixup the symbol address before using it
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 2 Apr 2010 00:24:38 +0000 (21:24 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 2 Apr 2010 19:28:25 +0000 (16:28 -0300)
commit71cf8b8ff7d6a79af086be9e4c72628da9d62d58
tree8a8d6f97995133971d8f8bec3f4a885070ce103f
parente727ca73f85d4c5be3547eda674168219d1c22d8
perf kmem: Fixup the symbol address before using it

We get absolute addresses in the events, but relative ones from the
symbol subsystem, so calculate the absolute address by asking for the
map where the symbol was found, that has the place where the DSO was
actually loaded.

For the core kernel this poses no problems if the kernel is not
relocated by things like kexec, or if we use /proc/kallsyms, but for
modules we were getting really large, negative offsets.

LKML-Reference: <new-submission>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-kmem.c