在 redhat 上找不到 DPDK 测试应用程序

DPDK test application cannot found on redhat

我遇到了错误显示的问题(在 redhat 上部署 dpdk 时):

sudo: x86_64-native-linuxapp-gcc/app/test: 找不到命令

不知道怎么回事。

现在我无法测试dpdk,如果您以前遇到过,可以帮助我吗?

下面有一些关于我的系统的详细信息。

仅供参考。

内核版本

3.10.0-693.11.1.el7.x86_64


[root@cnhzdhcp16557 usertools]# ./dpdk-setup.sh

构建x86_64-native-linuxapp-gcc

...

== 建造 app/test-crypto-perf

== 构建 app/test-eventdev

构建完成[x86_64-native-linuxapp-gcc]

安装不能 运行 定义了 T 而未定义 DESTDIR


插入IGB UIO模块

正在卸载任何现有的 DPDK UIO 模块

加载DPDK UIO模块


插入VFIO模块

正在卸载任何现有的 VFIO 模块

加载VFIO模块

chmod /dev/vfio

好的


插入KNI模块

正在卸载任何现有的 DPDK KNI 模块

正在加载 DPDK KNI 模块

按回车键继续...


使用内核驱动的网络设备

0000:00:19.0 'Ethernet Connection I217-V 153b' if=enp0s25 drv=e1000e 未使用=igb_uio 活动

0000:02:00.0 'Centrino Advanced-N 6235 088e' if=wlo1 drv=iwlwifi 未使用=igb_uio


大页面信息

AnonHugePages:98304 kB

HugePages_Total: 128

HugePages_Free: 128

HugePages_Rsvd: 0

HugePages_Surp: 0

大页大小:2048 kB


运行 测试应用程序 ($RTE_TARGET/app/test)

输入内核的十六进制位掩码以在

上执行测试应用程序

示例:要在核心 0 到 7 上执行应用程序,输入 0xff

位掩码:f

正在启动应用程序

sudo: x86_64-native-linuxapp-gcc/app/test: 找不到命令


运行 以交互模式测试pmd应用程序($RTE_TARGET/app/testpmd)

输入内核的十六进制位掩码以在

上执行测试应用程序

示例:要在核心 0 到 7 上执行应用程序,输入 0xff

位掩码:f

正在启动应用程序

EAL:检测到 4 个 lcore

EAL:在 hugepages-1048576kB 中没有报告免费的大页面

EAL:正在探测 VFIO 支持...

EAL:NUMA 套接字上的 PCI 设备 0000:00:19.0

EAL:无效的 NUMA 套接字,默认为 0

EAL:探测驱动程序:8086:153bnet_e1000_em

EAL:没有探测到以太网设备

已选择交互模式

USER1:创建一个新的 mbuf 池:n=171456,大小=2176,

套接字=0

EAL:错误 - 退出代码:1

原因:为套接字 0 创建 mbuf 池失败:无法分配内存


应使用 make test... 命令手动构建测试应用程序。您真正想要的是 testpmd 应用程序正常工作。有两个问题:

  1. EAL: No probed ethernet devices 日志表示 testpmd 没有可用的 NIC。您需要将 NIC 绑定到 igb_uio 才能在 DPDK 应用程序中使用。

  2. Cause: Creation of mbuf pool for socket 0 failed: Cannot allocate memory 日志表示没有足够大的页面来分配内存池。确实:

    HugePages_Free: 128 大页大小:2048 kB

共有128页,每页2M,可用内存为256M。虽然 testpmd 尝试分配 create a new mbuf pool : n=171456, size=2176 这使得 171456 * 2176 = 373M,所以它失败了。

解决方案是分配更多大页面或使用 --total-num-mbufs 命令行选项分配给 运行 testpmd