• Ming Lei's avatar
    perf symbols: Figure out start address of kernel map from kallsyms · d214afbd
    Ming Lei authored
    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: default avatarMing Lei <tom.leiming@gmail.com>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    d214afbd
symbol.c 57 KB