]> git.baikalelectronics.ru Git - kernel.git/commit
perf symbols: Figure out start address of kernel map from kallsyms
authorMing Lei <tom.leiming@gmail.com>
Thu, 25 Nov 2010 11:27:25 +0000 (19:27 +0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 30 Nov 2010 16:47:58 +0000 (14:47 -0200)
commit2f3695fd004692be02418fb756c13198134a0290
treed415963d5c0afc47126e5224839bc478c7705203
parentec413fcd3adb557f2b12d1e7a2c4b6580be13211
perf symbols: Figure out start address of kernel map from kallsyms

On ARM, module symbol start address is ahead of kernel symbol start address, so
we can't suppose that the start address of kernel map always is zero, otherwise
may cause incorrect .start and .end of kernel map (caused by fixup) when there
are modules loaded, then map_groups__find may return incorrect map for symbol
query.

This patch always figures out the start address of kernel map from
/proc/kallsyms if the file is available, so fix the issues on ARM for module
loaded case.

This patch fixes the following issues on ARM when modules are loaded:

- vmlinux symbol can't be found by kallsyms maps doing 'perf test'
- module symbols are parsed mistakenlly when doing 'perf top'/'perf report'

Cc: Ian Munsie <imunsie@au1.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <20101125192725.62d31b42@tom-lei>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/symbol.c