ethdev: support vtune task tracing
authorIlia Kurakin <ilia.kurakin@intel.com>
Fri, 22 Sep 2017 14:52:29 +0000 (17:52 +0300)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 22 Sep 2017 17:01:32 +0000 (19:01 +0200)
commit5dce9fcdb2308becb7de7470118af3eeccfe4fd7
tree5113a7f279a23536717eafd70e286e2dc216a2cc
parentd191f0853378f61329afa421283b7dfaed896962
ethdev: support vtune task tracing

The patch simplifies DPDK applications analysis for developers which use
IntelĀ® VTune Amplifier.

The empty cycles are such iterations that yielded no RX packets. As far as
DPDK is running in poll mode, wasting cycles is equal to wasting CPU time.
Tracing such iterations can identify that device is underutilized. Tracing
empty cycles becomes even more critical if a system uses a lot of Ethernet
ports.

The patch gives possibility to analyze empty cycles without changing
application code. All needs to be done is just to reconfigure and rebuild
the DPDK itself with CONFIG_RTE_ETHDEV_PROFILE_ITT_WASTED_RX_ITERATIONS
enbled. The important thing here is that this does not affect DPDK code.
The profiling code is not being compiled if user does not specify config
flag.

The patch provides common way to inject RX queues profiling and VTune
specific implementation.

Signed-off-by: Ilia Kurakin <ilia.kurakin@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
config/common_base
doc/guides/prog_guide/profile_app.rst
lib/librte_ether/Makefile
lib/librte_ether/ethdev_profile.c [new file with mode: 0644]
lib/librte_ether/ethdev_profile.h [new file with mode: 0644]
lib/librte_ether/rte_ethdev.c