User Guide


Enable Linux* Kernel Analysis

For successful performance analysis of the kernel and system libraries, do the following:

Enable Kernel Modules Resolution

To provide accurate performance statistics for the Linux kernel, the
requires kernel modules information provided in the
file. Make sure the
file contains values that enable reading
and providing non-zero addresses for the kernel pointers:
  • If the
    value is 0, kernel addresses are provided without limitations (recommended).
  • If the
    value is 1, addresses are provided if the current user has a
  • If the
    value is 2, the kernel addresses are hidden regardless of privileges the current user has.
See more details at:,
If kernel pointers information was explicitly hidden by setting the
to a non-zero value, hardware event-based analysis results may not contain functions from kernel modules. As a result, you may see the CPU time associated with the
[Outside any known module]
item. To workaround this problem for the current session, set the contents of the
file to 0 before starting the
as follows:
sysctl -w kernel.kptr_restrict=0
To resolve symbols for the Linux kernel, the
also uses the
file created during the kernel build and shipped with the system by default. If the file is located in a non-default directory, you may add it to the list of search directories in the
Binary/Symbol Search
dialog box when configuring your target properties.
The settings in the
file enable the
to resolve kernel symbols and view kernel functions and kernel stacks but do not enable the assembly analysis.

Download and Install Available Debug Kernel Versions

After installing the Linux operating system, the kernel is contained in
, or
, or
. Linux vendors typically release compressed kernel files stripped of symbols (
is the uncompressed Linux kernel, but it does not include debug information. So, by default the
cannot retrieve kernel function information from these kernels and presents all hot addresses captured in the kernel as a unique function or module named
. However, some vendors have released special debug versions of their kernels that are suitable for performance analysis.
  1. Use the
    uname -r
    command to identify the running Linux kernel version.
  2. Download and install two RPMs matching your system:
    . To do this, use any of the following options:
    • Browse through the RPMs on your installation CDs or DVDs. For example, for SuSE Linux Enterprise* 9, 10, and 11 distros, SuSE provides "debug" kernel RPMs (
      ) available on the install CD or from the website. After installing the RPM, the debug version of the kernel file is located under
      or under
      . You need to manually uncompress this kernel file using the
    • Browse through the OS vendor FTP site and download the packages. For example: look at to get packages for Redhat* Enterprise Server.
    • Look for other sources on the internet. For example, for Red Hat Enterprise* Linux 3, 4 and 5 distros, Red Hat provides
      RPMs at After installing the RPM, the debug version of the kernel file is located under
      (EL 3) or
      (EL 4, 5).
  3. Use the following commands to install the RPMs:
    rpm -ivh kernel-debuginfo-common-*.rpm rpm -ivh kernel-debug-debuginfo-*.rpm
    For some operating systems, you can use
    to install packages directly, for example:
    yum --enablerepo=rhel-debuginfo install kernel-debuginfo
  4. Verify that the packages have been installed, for example:
    rpm -qa|grep kernel
  5. Modify the
    target properties and specify the path to the uncompressed kernel binary in the Dialog Box: Binary/Symbol Search , for example:

Build the Linux Kernel with Debug Information

  1. Edit the kernel source top-level Makefile and add the
    option to the following variables:
    CFLAGS := -g
  2. Run
    make clean; make
    to create the
    kernel file with debug information. Once a debug version of the kernel is created or obtained, specify that kernel file as the one to use during performance analysis.
As soon as the debug information is available for your kernel modules, any future analysis runs will display the kernel functions appropriately. To resolve the previously collected data against this new symbol information, update the project Search Directories and click the
button to apply the changes.

Product and Performance Information


Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804