Intel® VTune™ Amplifier

DPDK Code Analysis

To analyze the performance of an DPDK application, consider the following analysis options provided by the Intel® VTune™ Amplifier:

Enable Empty Cycles Tracing

Empty Cycles are DPDK polling loop iterations that bring no packets. To benefit from the DPDK IO API profiling, make sure the DPDK is configured to enable empty cycles tracing. See the DPDK Programmer's Guide for configuration steps: http://dpdk.org/doc/guides/prog_guide/profile_app.html#empty-cycles-tracing.

Configure VTune Amplifier for DPDK Analysis

Create and set up your DPDK analysis project as follows:

  1. Click the New Project button on the VTune Amplifier toolbar to set up your basic project settings such as a project name and a project directory. Click Create Project.

    The Configure Analysis window opens.

  2. From the WHERE pane, specify a system to be used for analysis, for example: Local Host.

    Note

    Only Linux* target systems are supported.

  3. From the WHAT pane, specify a target application to analyze.

  4. From the HOW pane on the right, click the Browse button to select the Input and Output analysis type.

  5. Select the DPDK IO API to profile.

  6. Click the button to run the analysis.

Note

Consider employing the custom collector to collect additional data (for example, network statistics) and correlate this data with empty cycles distribution.

Analyze Empty Cycles

For data plane applications, you may see 100% of CPU utilization on the Timeline view, which could result from the DPDK poll mode that prevents measuring core effective utilization. Enable the I/O APIs markers on the timeline that show empty cycles as user tasks on the timeline. In the tooltips, you can see the task duration, DPDK port and Rx queue IDs:

Analyze Bandwidth

Use the Platform window grouped by H/W Context/Threads to explore key bandwidth statistics per device:

See Also