无法在 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_CALLBACKS
和 CONFIG_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 -- <app_cmd>
@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 控制台应用程序的高级热点分析无法正常工作