DPDK Event Device Profiling
- Event Device– device with event scheduling capability, implemented either in hardware or software.
- Queue– logical stage of the processing pipeline that contains events of different flows associated with scheduling types (atomic, ordered, or parallel).
- Ports– points of contact between cores and theeventdevlibrary that are used to enqueue and dequeue events to and fromeventdevqueues.
- Worker Cores– CPU cores that are available to the application to perform work.
- Rx Core– CPU core that receives packets from the NIC.
- Tx Core– CPU core that transmits packets to the NIC.
- NIC– Network Interface Card.
- queue_0is dedicated to keep newly arrived packets. Only the Rx core enqueues packets (events) to this queue.
- queue_1andqueue_2are dedicated to some type of event processing stage, such as setting destination address, cryptography processing, or compression. Worker cores perform these tasks and transfer packets between queues 0, 1, 2, and 3.
- queue_3is dedicated to keep packets that are ready to be transmitted. Only the Tx core dequeues packets from this queue.
- Application:the DPDKeventdev_pipelineapplication demonstrates the usage of theeventdevAPI and shows how an application can configure a pipeline and assign a set of worker cores to perform event processing. The application is compiled with DPDK withVTunesupport enabled.Profiler
- DPDK, compiled withVTunesupport enabled. To enableProfilereventdevprofiling on DPDK side, you need to apply a patch,dpdk_eventdev_vtune_profiling.patchand recompile DPDK and the target DPDK application. Download the Profiling Patch for DPDK Event Device here.
- Intel® VTune™2020: Input and Output analysis.Profiler
- Starting with the 2020 release, Intel® VTune™ Amplifier has been renamed toIntel® VTune™.Profiler
- Most recipes in theIntel® VTune™Performance Analysis Cookbook are flexible. You can apply them to different versions ofProfilerIntel® VTune™. In some cases, minor adjustments may be required.Profiler
- System Setup:
- Traffic generator:a system that generates traffic for the system being tested.
- System under test:a system running theeventdev_pipelineapplication for packet (event) processing andVTunefor performance data collection.Profiler
- CPU:Intel® Xeon® Platinum 8168 processor (formerly code named Skylake).
- Operating System:Linux* OS.
Run Input and Output Analysis
- Launch theVTuneGUI and create a new projectProfiler
- In theHOWpane, select theInput and Outputanalysis
- InSelect IO API type to profile, selectDPDK IO API
- Click theStartbutton.
vtune -collect io -knob kernel-stack=false -knob dpdk=true --target-process=eventdev_pipeline