无法在 DPDK 上重现 Intel Vtune 分析示例的结果

Posted

技术标签:

【中文标题】无法在 DPDK 上重现 Intel Vtune 分析示例的结果【英文标题】:Failed to reproduce results of Intel Vtune analyzing example on DPDK 【发布时间】:2021-05-18 08:25:32 【问题描述】:

我正在 Linux 上运行 DPDK 进程,并尝试按照下面的示例来分析核心效率。 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

由于缺少 GUI 组件,我在 Ubuntu 20.04 上运行该程序并将文件复制回我的 Windows 笔记本电脑。而且我无法获得之前显示的 DPDK Rx Spin Time。 vtune results warning logs

这是因为警告日志。还是我错过了什么?任何帮助将不胜感激。

【问题讨论】:

你能帮我理解一下,这是用于测试的示例应用程序吗?您是否启用了 RX 回调处理程序来捕获 RX 突发和 tx 突发事件?在复制到 windows 时,您是否将自定义收集器输出(可能是 csv)复制到 windows vtune?如果您正在寻找自定义统计直方图,它不在HOTSPOT of CPU 我正在测试原始的 l3fwd-acl 示例而没有修改。在复制到 windows 时,我所做的只是复制整个 r000io 目录。 它适用于 testpmd 但不适用于其他一些示例。我应该在哪里修改以在其他 DPDK 应用程序上启用 DPDK Rx Spin Time? 我记得您需要在l3fwd-acl 中注册回调 RX 和 TX 处理程序,以注册数量为空和非空的 RX 调用,并在 TX 回调处理程序中注册 DMA 和实际 DMA 的 pkts需要它工作。默认l2fwd-acl 没有注册回调。 正如评论中指出的 LowSteam 它适用于 testpmd 但不适用于其他一些示例。这意味着 DPDK 已经使用 RTE_ETHDEV_PROFILE_WITH_VTUNE 构建。 @Lowsteam 你能确认一下吗? 【参考方案1】:

请检查您正在分析的应用程序是否包含 RX 和 TX 跟踪所需的回调。 要在 VTune Profiler 中启用 RX 突发统计数据收集,您需要:

在启用 CONFIG_RTE_ETHDEV_RXTX_CALLBACKSCONFIG_RTE_ETHDEV_PROFILE_WITH_VTUNE 选项的情况下构建 DPDK 使用此 DPDK 重新构建您的测试应用程序 运行 VTune I/O 分析

要检查是否启用了 VTune 分析,请运行:

nm <test_app> | grep profile_hook_rx_burst_cb

【讨论】:

所以 vtune 通过分析使用 rte_eth_add_rx_callback 添加的回调函数记录的内容来分析进程?如果我理解正确,我应该以什么格式编写这些统计信息? 据我了解,您使用 l3fwd-acl DPDK 示例。在这种情况下,您需要做的就是重建您的 DPDK 和带有分析标志的示例。您不需要自己控制录制格式,VTune 会自动完成。因此,如果您使用介子构建系统,您只需要: - 使用分析选项构建 dpdk/examples:meson build meson configure build -Dc_args=-DRTE_ETHDEV_PROFILE_WITH_VTUNE -Dexamples=all ninja -C build - 检查 VTune 分析回调:nm dpdk-l3fwd-acl | grep profile_hook_rx_burst_cb - 运行 VTune 分析:vtune -collect io -knob dpdk=true -- &lt;app_cmd&gt; @Johny 感谢分享步骤,确实是正确的。但正如@LowSteam 在评论It works with testpmd but not with some other examples. 中指出的那样,这意味着DPDK 已经使用RTE_ETHDEV_PROFILE_WITH_VTUNE 构建。 @Johny 你能重现错误吗?

以上是关于无法在 DPDK 上重现 Intel Vtune 分析示例的结果的主要内容,如果未能解决你的问题,请参考以下文章

适用于 Mac 的 Intel VTune Profiler 错误:无法与目标通信

Linux 上 fortran 代码的 Intel Vtune 奇怪行为

Intel Vtune Amplifier XE2016 对 VS2015 控制台应用程序的高级热点分析无法正常工作

在 intel-vtune 中,被调用函数的有效总时间高于调用函数的总时间

Intel C++编译器和VTune的免费版本

intel Vtune 的整数加减法事件计数在哪里?