Intel® VTune™ Profiler

User Guide

ID 766319
Date 12/20/2024
Public
Document Table of Contents

Configure Yocto Project* and Intel® VTune™ Profiler with the Linux* Target Package

NOTE:
Profiling support for the Yocto Project* is deprecated and will be removed in a future release.

Intel® VTune™ Profiler can collect and analyze performance data on embedded Linux* devices. This topic provides an example of setting up Intel VTune Profiler to collect performance data on an embedded device running Yocto Project*. The first section provides information for a typical use case where the required collectors are automatically installed. The second section provides steps to manually install the collectors and the VTune Profiler drivers for hardware event-based sampling data collection.

Automatically Configure and Run Remote Analysis

Use the following steps on the host system to set up and launch the analysis on the embedded device:

  1. Set up a password-less SSH access to the target using RSA keys.

  2. Open VTune Profiler and create a new project.

  3. Select the remote Linux (SSH) analysis target and specify the collection details. VTune Profiler connects to the target system and installs the appropriate collectors. If the automatic installation fails or if you want to collect hardware event-based sampling with the VTune Profiler drivers, follow the instructions below to manually configure the target system.

  4. Select the analysis type.

  5. Start the analysis.

Manually Configure the Linux Target System

Use these steps only if the automatic installation fails.

  1. Copy the target package archive to the target device. The following target packages are available:

    • <intall-dir>/target/vtune_profiler_target_sep_x86.tgz - provides hardware event-based sampling collector only (SEP) for x86 systems

    • <install-dir>/target/vtune_profiler_target_x86.tgz - provides all VTune Profiler collectors for x86 systems

    • <install-dir>/target/vtune_profiler_target_sep_x86_64.tgz - provides hardware event-based sampling collector only (SEP) for 64-bit systems

    • <install-dir>/target/vtune_profiler_target_x86_64.tgz - provides all VTune Profiler collectors for 64-bit systems

    For example, the following command copies the vtune_profiler_target_x86_64.tgz package to the embedded device using SCP:

    scp -r vtune_profiler_target_x86_64.tgz root@123.45.67.89:/opt/intel/
  2. Extract the file on the target system. For example:

    tar -xvsf vtune_profiler_target_x86_64.tgz
  3. Make sure the sampling driver is available on the target system. The installation output should inform you if building the sampling driver is required. If it is not, you will need to build the sampling driver and install it on the target system.

    If the compiler toolchain is available on the target embedded system, build the driver on the target device using the following steps:

    1. Open a command prompt and navigate to the <install-dir>/sepdk/src directory. For example:

      cd /opt/intel/vtune_profiler_2020.0.0.0/sepdk/src
    2. Build the driver using the ./build-driver command. For example:

       ./build-driver -ni \ --kernel-src-dir=/usr/src/kernel/ \ --kernel-version=4.4.3-yocto-standard \ --make-args="PLATFORM=x64 ARITY=smp"
    3. Load the driver into the kernel using the ./insmod-sep command.

    If the compiler toolchain is not available on the target embedded system, build the driver on the host system and install it on the target device using the following steps:

    1. Open a command prompt and navigate to the <install-dir>/sepdk/src directory. For example:

      cd /opt/intel/vtune_profiler_2020.0.0.0/sepdk/src
    2. Cross-build the driver using the using the ./build-driver command. Provide the cross-compiler (if necessary) and the target kernel source tree for the build. For example:

      mkdir drivers
      ./build-driver -ni \
      --c-compiler=i586-i586-xxx-linux-gcc \
      --kernel-version=4.4.3-yocto-standard \
      --kernel-src-dir=/usr/src/kernel/ \
      --make-args="PLATFORM=x32 ARITY=smp" \
      --install-dir=./drivers
      
    3. Copy the sepdk/src/drivers folder to the target system.
    4. Load the driver into the kernel using the ./insmod-sep command.