User Guide


Rebuild and Install Module i915 for GPU Analysis on Ubuntu*

To collect i915 ftrace events required to analyze the GPU utilization, your Linux kernel should be properly configured. If the Intel® VTune™ Profiler cannot start an analysis and provides an error message:
Collection of GPU usage events cannot be enabled. i915 ftrace events are not available
. You need to rebuild and install the re-configured module i915. For example, for kernel 4.14 and higher, these settings should be enabled:
If you update the kernel often, make sure to build the special kernel for GPU analysis.
On Ubuntu* systems, if you update the kernel rarely, you can configure and rebuild only module i915 as follows:
Installing the kernel requires root permissions.
  1. Add source package repositories for your Ubuntu* version.
    For example, on Ubuntu Bionic Beaver* add:
    sudo add-apt-repository -s "deb bionic main restricted"
  2. Install build dependencies:
    sudo apt -y build-dep linux linux-image-$(uname -r) sudo apt -y install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf
  3. Install kernel headers:
    sudo apt -y install linux-headers-$(uname -r)
  4. Create a folder for kernel source:
    mkdir -p /tmp/kernel cd !$
  5. Download kernel sources:
    apt -y source linux cd linux-*
  6. Configure the kernel modules:
    cp /usr/src/linux-headers-$(uname -r)/.config ./ cp /usr/src/linux-headers-$(uname -r)/Module.symvers ./
  7. Update the version in Makefile in the current directory.
    The version value should be the same as in the
    uname -r
    command output. For example, if
    uname -r
    , the values in the Makefile must be:
    VERSION = 4
    SUBLEVEL = 0
    EXTRAVERSION = -20-generic
    Update the file, if required, and save it.
  8. Make sure the kernel version is set correctly in the Makefile:
    make kernelversion
    The command output for the example above must be:
  9. Update the new
    file, if required, and save it.
    Make sure the following settings in the file are enabled:
  10. Create a full
    file for the kernel:
    make olddefconfig
  11. Build module i915:
    make -j$(getconf _NPROCESSORS_ONLN) modules_prepare make -j$(getconf _NPROCESSORS_ONLN) M=./drivers/gpu/drm/i915 modules
    If you get the following error:
    LD [M] drivers/gpu/drm/i915/i915.o ld: no input files
    you need to replace the following lines in
    link_multi_deps = \ $(filter $(addprefix $(obj)/, \ $($(subst $(obj)/,,$(@:.o=-objs))) \ $($(subst $(obj)/,,$(@:.o=-y))) \ $($(subst $(obj)/,,$(@:.o=-m)))), $^)
    with the line:
    link_multi_deps = $(filter %.o,$^)
  12. Install the new module:
    sudo make M=./drivers/gpu/drm/i915 modules_install
  13. Make sure the folder with the new driver is present in
    files, or just add it:
    echo "search extradrivers" | sudo tee /etc/depmod.d/00-extra.conf
  14. Update
    sudo depmod sudo update-initramfs -u
  15. Reboot the machine:
    sudo reboot
  16. Make sure the new driver is loaded:
    modinfo i915 | grep filename
    The expected command output is the following:
    filename: /lib/modules/4.15.0-20-generic/extradrivers/gpu/drm/i915/i915.ko
To roll back the changes and load the original module i915:
  1. Remove the folder with new driver from
    sudo rm /etc/depmod.d/00-extra.conf
  2. Update
    sudo depmod sudo update-initramfs -u
  3. Reboot the machine:
    sudo reboot

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