0

I'm running a DPDK process on a Linux and tried to follow the example down below to analysis core effiency. https://software.intel.com/content/www/us/en/develop/documentation/vtune-cookbook/top/methodologies/core-utilization-in-dpdk-apps.html#core-utilization-in-dpdk-apps_RX

I ran the program on Ubuntu 20.04 and copied the file back to my windows laptop due to the lack of GUI components. And I can't get the DPDK Rx Spin Time shown before. vtune results warning logs

It's because of the warning logs. or am I missing something? Any help will be grateful.

Vipin Varghese
  • 4,540
  • 2
  • 9
  • 25
LowSteam
  • 31
  • 6
  • can you help me understand, which is the sample application used for testing? Did you enable the RX callback handler to capture the RX burst and tx burst events? While copying to windows did you copy custom collector output (maybe csv) to windows vtune? If you are looking for custom statistics histogram it is not under `HOTSPOT of CPU` – Vipin Varghese May 18 '21 at 14:43
  • I was testing the original l3fwd-acl example without modification. While copying to windows, all I did was copying the whole r000io directory. – LowSteam May 19 '21 at 01:22
  • It works with testpmd but not with some other examples. Where should I modify to enable DPDK Rx Spin Time on other DPDK application? – LowSteam May 19 '21 at 01:40
  • as I recollect you will need to register the callback RX and TX handlers in `l3fwd-acl` to register number empty and non empty RX calls, and number pkts for DMA and actual DMA in TX callback handler if you need it to work. The default `l2fwd-acl` does not have the callback registered. – Vipin Varghese May 19 '21 at 02:48
  • As pointed out LowSteam in the comment It works with testpmd but not with some other examples., this means the DPDK is already built with the RTE_ETHDEV_PROFILE_WITH_VTUNE. @Lowsteam can you please confirm? – Vipin Varghese May 24 '21 at 16:42
  • @Johny are there any updates `But as pointed out @LowSteam in comment It works with testpmd but not with some other examples., this means the DPDK is already built with the RTE_ETHDEV_PROFILE_WITH_VTUNE. @Johny were you able reproduce the error?` – Vipin Varghese May 28 '21 at 02:46

1 Answers1

0

Please check that application you are profiling contains the necessary callbacks for RX and TX tracing. To enable RX burst statistic collection in VTune Profiler you need:

  • build DPDK with with the CONFIG_RTE_ETHDEV_RXTX_CALLBACKS and CONFIG_RTE_ETHDEV_PROFILE_WITH_VTUNE options enabled
  • rebuild your test application with this DPDK
  • run VTune I/O analysis

To check that VTune profiling is enabled ran:

nm <test_app> | grep profile_hook_rx_burst_cb
Johny
  • 16
  • 1
  • So vtune profiles processeses by analyzing what recorded by callback functions added using rte_eth_add_rx_callback? If I understanded this correctly, in what format should I write those statistics? – LowSteam May 20 '21 at 06:14
  • As I understand you use l3fwd-acl DPDK example. In this case all what you need to do it is rebuild your DPDK and example with profiling flag. You dont need to control the recording format yourself, VTune will do it automaticaly. So if you use meson build system, you just need: - build dpdk/examples with profiling option: `meson build` `meson configure build -Dc_args=-DRTE_ETHDEV_PROFILE_WITH_VTUNE -Dexamples=all` `ninja -C build` - check VTune profiling callbacks: `nm dpdk-l3fwd-acl | grep profile_hook_rx_burst_cb` - run VTune profiling: `vtune -collect io -knob dpdk=true -- ` – Johny May 20 '21 at 11:51
  • @Johny thanks for sharing the steps, indeed it is correct. But as pointed out @LowSteam in comment `It works with testpmd but not with some other examples.`, this means the DPDK is already built with the `RTE_ETHDEV_PROFILE_WITH_VTUNE`. @Johny were you able reproduce the error? – Vipin Varghese May 21 '21 at 15:07