User Guide

Contents

Rebuild and Install Module i915 for GPU Analysis on CentOS*

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 i915 module. 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 CentOS* systems, if you update the kernel rarely, you can configure and rebuild only module i915 as follows:
Installing the kernel requires root permissions.
  1. Install build dependencies:
    sudo yum install flex bison elfutils-libelf-devel
  2. Create a folder for kernel source:
    mkdir -p /tmp/kernel cd !$
  3. Get your kernel version:
    uname -r
    This is an example of the command output:
    4.18.0-80.11.2.el8_0.x86_64
  4. Get source code for the kernel:
    wget http://vault.centos.org/8.0.1905/BaseOS/Source/SPackages/kernel-4.18.0-80.11.2.el8_0.src.rpm
    rpm --define "_topdir /tmp/kernel/rpmbuild" -i kernel-4.18.0-80.11.2.el8_0.src.rpm
    tar -xf ./rpmbuild/SOURCES/linux-4.18.0-80.11.2.el8_0.tar.xz
  5. Change the current directory:
    cd linux-*
  6. Configure the kernel modules:
    cp /usr/src/kernels/$(uname -r)/.config ./
    cp /usr/src/kernels/$(uname -r)/Module.symvers ./
  7. Update the version in Makefile in the current directory.
    The version value must be the same as in the
    uname -r
    command output. For example, if
    uname -r
    prints
    4.18.0-80.11.2.el8_0.x86_64
    , the values in the Makefile should be:
    VERSION = 4
    PATCHLEVEL = 18
    SUBLEVEL = 0
    EXTRAVERSION = -80.11.2.el8_0.x86_64
    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 is the following:
    4.18.0-80.11.2.el8_0.x86_64
  9. In the new
    .config
    file, make sure the following settings are enabled:
    CONFIG_EXPERT=y
    CONFIG_FTRACE=y
    CONFIG_DEBUG_FS=y
    CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS=y
    Update the file, if required, and save it.
  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 dracut --force
  15. Reboot the machine:
    sudo reboot
  16. Make sure the new driver is loaded:
    modinfo i915 | grep filename
    The command output should be the following:
    filename: /lib/modules/4.18.0-80.11.2.el8_0.x86_64/extradrivers/gpu/drm/i915/i915.ko
To roll back the changes and load the original module i915:
  1. Remove the folder with the 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

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.