User Guide

Contents

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:
CONFIG_EXPERT=y
and
CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS=y
.
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 http://ru.archive.ubuntu.com/ubuntu/ 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
    prints
    4.15.0-20-generic
    , the values in the Makefile must be:
    VERSION = 4
    PATCHLEVEL = 15
    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:
    4.15.0-20-generic
  9. Update the new
    .config
    file, if required, and save it.
    Make sure the following settings in the file are enabled:
    CONFIG_EXPERT=y
    CONFIG_FTRACE=y
    CONFIG_DEBUG_FS=y
    CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS=y
  10. Create a full
    config
    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
    scripts/Makefile.build
    :
    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
    /etc/depmod.d/*
    files, or just add it:
    echo "search extradrivers" | sudo tee /etc/depmod.d/00-extra.conf
  14. Update
    initramfs
    :
    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
    /etc/depmod.d/*
    files:
    sudo rm /etc/depmod.d/00-extra.conf
  2. Update
    initramfs
    :
    sudo depmod sudo update-initramfs -u
  3. Reboot the machine:
    sudo reboot

Product and Performance Information

1

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