OProfile: no kernel symbols

Will Cohen wcohen at redhat.com
Mon May 24 14:15:22 UTC 2004


Vladimir G. Ivanovic wrote:
> I can't get OProfile to give me profiling information for kernel symbols:
> 
>    # opreport --threshold=5 --symbols /boot/vmlinux-2.4.22-1.2188.nptlsmp
>    CPU: PIII, speed 1004.54 MHz (estimated)
>    Counted CPU_CLK_UNHALTED events (clocks processor is not halted) with a unit mask of 0x00 (No unit mask) count 502271
>    vma      samples  %           symbol name
>    00000000 2034171  100.0000    (no symbols)
> 
> I get the required information with a binary (or a shared object
> library).

The build system strips out the symbols from executables in the rpms and 
generates separate debuginfo rpms that contain that information in 
.debug files. Right now Red Hat doesn't seem to have these in a public 
place.

The debug information contained is matched up using checksums on the 
original executable. As a result of the check, the debuginfo RPM and 
binary RPM have to be from the same build. You couldn't take a debuginfo 
RPM you build locally, install it, and expect it to work with the binary 
RPM built by Red Hat. You need to use the locally build binary RPM for 
this to work.

>    $ opreport --threshold=5 --no-header --symbols /usr/local/bin/xemacs-21.4.15
>    08083168 5249     10.2400     mark_object
>    08083670 3793      7.3995     mark_cons
>    08083e18 2975      5.8037     sweep_conses
> 
> 
> I started OProfile with:
> 
>    opcontrol --setup --event=default --vmlinux=/boot/vmlinux-`uname -r` --start
> 
> and I am using:
> 
>    * oprofile-0.7cvs-0.20030829.6 (the latest for Fedora Core 1)
>    * kernel-smp-2.4.22-1.2188.nptl
>    * kernel-source-2.4.22-1.2188.nptl
> 
> The file /boot/System-map-2.4.22-1.2188.nptlsmp is present and seems to
> contain the required symbols.

The map information is not used by oprofile to map the address back to 
functions. OProfile uses the symbol information in the executable or the 
associated .debug file from the debuginfo rpm. Most executables do not 
have System-map files. Kernels can be built with symbols like other 
executables, so it didn't seem to make much sense to have special case 
code for the kernel.

> What am I doing wrong?

Either you need to install a matching debuginfo rpm or uses a custom 
kernel. The custom kernels do not have the symbols stripped out.

-Will







More information about the fedora-list mailing list