【发布时间】:2020-05-20 21:08:51
【问题描述】:
我正在尝试使用 DPDK api 并尝试计算可供在 DPDK 上运行的应用程序使用的以太网设备的数量。为此,我使用了 DPDK api 提供的 rte_eth_dev_count_avail() 方法,但即使我看到绑定到 DPDK 兼容设备驱动程序的设备,它也会返回 0。 这是 ./usertools/dpdk-devbind.py --status
的输出如您所见,我有多个设备驱动程序绑定到 DPDK 兼容设备驱动程序,所以不知道为什么会发生这种情况。
我还添加了 cmets 中提到的 ldd [binary] 的输出。
我正在添加命令 egrep "SHARED|IGB_PMD|EM_PMD" $RTE_TARGET/.config 的输出
./usertools/dpdk-pmdinfo.py -d /usr/share/hwdata/pci.ids [二进制] | 的输出grep -i "PMD 名称"
【问题讨论】:
-
您的问题可能是原因之一 1) 以共享库模式构建,但忘记使用适当的 PMD 添加选项
-d。 2) 使用自定义 make 文件构建,忘记在 LD_FLAGS 中为 ethdev 构造函数添加正确的库。 3) 在.config中为 IGB PMD 禁用 e1000 或 EM。也分享ldd [binary]和cmd line arguments的结果 -
@VipinVarghese 我已经用 ldd [binary] 的输出更新了这个问题
-
感谢您的更新,看来您正在使用静态构建。现在我们有两种情况。请运行 egrep "SHARED|IGB_PMD|EM_PMD" $RTE_TARGET/.config,使用
-w 0000:01:00.1 -w 0000:01:00.2 -w 0000:01:00.3运行应用程序。分享应用程序cmdline options。如果使用自定义 make 文件运行 make -n 如果它是 bash 脚本回显 cmd -
我正在等待更新以使用白名单选项、cmdline 运行,以及您是使用 DPDK makefile 还是自定义运行。让我为你简化一下,
./usertools/dpdk-pmdinfo.py -d /usr/share/misc/pci.ids examples/l2fwd/build/l2fwd | grep -i "PMD NAME"的输出是什么,你应该找到IGB|EM -
用你的
binary替换l2fwd
标签: dpdk