-1

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

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

我不确定这是怎么回事。

现在我无法测试 dpdk,如果你以前遇到过这个,你能帮我吗?

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

供参考。

内核版本

3.10.0-693.11.1.el7.x86_64


[root@cnhzdhcp16557 用户工具]# ./dpdk-setup.sh

构建 x86_64-native-linuxapp-gcc

...

== 构建应用程序/test-crypto-perf

== 构建应用程序/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 '以太网连接 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_免费: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:找不到命令


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

输入内核的十六进制位掩码以在其上执行测试应用程序

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

位掩码:f

启动应用程序

EAL:检测到 4 个 lcore

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

EAL:探测 VFIO 支持...

EAL:NUMA 插槽 -1 上的 PCI 设备 0000:00:19.0

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

EAL:探针驱动程序:8086:153b net_e1000_em

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

选择交互模式

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

套接字=0

EAL:错误 - 退出代码:1

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


4

1 回答 1

1

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

  1. EAL: No probed ethernet deviceslog 表示没有 NIC 可用于testpmd. 您需要将您的 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=2176171456 * 2176 = 373M,但它失败了。

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

于 2018-01-05T11:26:53.583 回答