Configure Yocto Project* and
VTune
Profiler with the Integration Layer
VTune
with the Integration Layer Profiler
Profiling support for the Yocto Project* is deprecated and will be removed in a future release.
Intel® VTune™
can collect and analyze performance data on embedded Linux* devices running Yocto Project*. This topic provides an example of setting up the
Profiler
VTune
to collect performance data on an embedded device with Yocto Project 1.8 installed using the
Profiler
Intel VTune
integration layer provided with the product installation files. The process integrates the
Profiler
VTune
product drivers with the target package and includes them in the embedded device image. Root access to the kernel is required.
Profiler
VTune
is able to collect some performance data without installing the
Profiler
VTune
drivers. To collect driverless event-based sampling data, installing the drivers and root access is not required. For
full capabilities, install the
Profiler
VTune
drivers as described here.
Profiler
Select the Target Package
VTune
provides two Yocto Project recipes in the following packages:
Profiler
- Thevtune_package includes the_target_sep_x86_64.tgzprofilerintel-vtune-sep-driverrecipe, which enables performance data collection using hardware event-based sampling. Attempting to collect stacks when using this recipe will automatically switch to driverless collection mode. This recipe has minimal requirements for Linux kernel configuration.
- Thevtune_package includes the_target_x86_64.tgzprofilerintel-vtune-driversrecipe, which enables the full performance data capabilities using hardware event-based sampling. This recipe has additional requirements for Linux kernel configuration. Theintel-vtune-driversrecipe is a superset of theintel-vtune-sep-driverrecipe.
Only one recipe can be used at a time. There is no difference between the
x86
and
x86_64
target packages for building recipes within Yocto Project. Both can be used on either 32 bit or 64 bit systems.
- Download theVTunetarget package or locate the package in theProfilerdirectory on the host system where<install-dir>/target/linuxVTuneis installed.Profiler
- Copy the selected target package to a location on the Yocto Project build system.
Prepare the Integration Layer
- On the Yocto Project build system, extract thevtune_or_target_sep_x86_64.tgzprofilervtune_archive to a writeable location._target_x86_64.tgzprofilercd $HOME tar xvzf vtune_profiler_target_x86_64.tgz
- (Optional) Modify the$HOME/vtune_file to specify user settings._profiler<version>/sepdk/vtune-layer/conf/user.conf
- If theVTunerecipe has been split from the target package, specify one of the following paths:Profiler
- Path to unzipped target package:VTUNE_TARGET_PACKAGE_DIR = "$HOME/vtune__profiler<version>"
- Path toVTune:ProfilerVTUNE_PROFILER_2020_DIR = "/opt/intel/vtune_"profiler
- To integrate the SEP driver during system boot:SpecifyADD_TO_INITD = "y"for init-based Yocto systems;Or specifyADD_TO_SYSTEMD = "y"for systemd-based Yocto systems.
- In the Yocto Project development environment, add the path to the layer to thebblayer.conffile. For example:vi conf/bblayers.conf BBLAYERS = "$HOME/vtune_profiler_<version>/sepdk/vtune-layer\"Your file should look similar to the following:BBLAYERS ?= " \ $HOME/source/poky/meta \ $HOME/source/poky/meta-poky \ $HOME/source/poky/meta-yocto-bsp \ $HOME/source/poky/meta-intel \ $HOME/vtune_profiler/sepdk/vtune-layer \ "
- Specify theIntel VTunerecipe inProfilerconf/local.conf. In this example, theintel-vtune-driversis used.vi "conf/local.conf" IMAGE_INSTALL_append = " intel-vtune-drivers"You cannot add bothintel-vtune-driversandintel-vtune-sep-driverat the same time.
Build and Flash the Target Operating System
- Build the target operating system. For example:bitbake core-image-satoIf you modified the kernel configuration options, make sure the kernel is recompiled.
- Flash the operating system to the embedded device.
Configure and Run Remote Analysis
Use the following steps on the host system to set up and launch the analysis on the embedded device: