Re: BUG: different symbol address between System.map and /proc/kallsyms

From: H. Peter Anvin
Date: Mon Dec 21 2009 - 01:37:34 EST


On 12/20/2009 05:20 PM, Xiao Guangrong wrote:
> Hi,
>
> The symbol address in System.map and /proc/kallsys is different:
>
> # cat System.map | grep _text
> c1000000 T _text
> # cat /proc/kallsyms | grep _text
> c0100000 T _text
>
> # readelf -s vmlinux | grep _text
> 35078: c1000000 0 NOTYPE GLOBAL DEFAULT 1 _text
>
> So, perf can't get sysmbol address properly:
>
> # ./perf report
> # Samples: 29
> #
> # Overhead Command Shared Object Symbol
> # ........ ....... ................... ......
> #
> 93.10% sleep c014f988 [k] 0x000000c014f988
> 3.45% sleep libc-2.9.90.so [.] _int_malloc
> 3.45% sleep [kernel] [k] 0x000000c014f988

That is normal if you have a relocatable kernel which has been loaded at
the non-compile-time default address.

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/