首页 > 解决方案 > 无法使用 dpdk 创建 mbuf 池

问题描述

我试图在示例/中运行 vhost 应用程序,并面临以下问题:

[]#examples/vhost/build/app/vhost-switch -l 0-3 -n 4 -- --socket-file /tmp/sock0 --client -p 0x1 --stats 20
EAL: 检测到 24 lcore(s )
EAL:hugepages-1048576kB 中没有报告可用的大页面
EAL:多进程套接字 /var/run/.rte_unix
EAL:探测 VFIO 支持...
EAL:警告:主内核在本地套接字上没有内存!
EAL:NUMA 套接字 -1 上的 PCI 设备 0000:07:00.0
EAL:无效的 NUMA 套接字,默认为 0
EAL:探针驱动程序:8086:1521 net_e1000_igb
EAL:NUMA 套接字 -1 上的 PCI 设备 0000:07:00.1
EAL:无效的 NUMA套接字,默认为 0
EAL:探针驱动程序:8086:1521 net_e1000_igb
EAL:NUMA 套接字 -1 上的 PCI 设备 0000:09:00.0
EAL:无效的 NUMA 套接字,默认为 0
EAL:探针驱动程序:8086:10d3 net_e1000_em
VHOST_PORT:
指定的端口号(1)超过总系统端口号(0)
EAL:错误 - 退出代码:1
原因:无法创建 mbuf 池

HugePage 的信息是这样的:

[]# sudo cat /proc/meminfo | grep Huge
AnonHugePages:3129344 kB
HugePages_Total:4096
HugePages_Free:0
HugePages_Rsvd:0
HugePages_Surp:0
Hugepagesize:2048 kB

我尝试运行其他应用程序,helloworld 运行良好,但 ptpclient 有同样的问题。重新启动没有帮助。我该如何解决?任何帮助表示赞赏。

提前致谢。

标签: dpdkhuge-pages

解决方案


真正的问题在这里:

指定的端口号 (1) 超过总系统端口号 (0)

这意味着没有检测到以太网端口。请确保您已将至少一个以太网设备绑定到 UIO 或 VFIO 驱动程序,如 DPDK 入门指南中所述:

https://doc.dpdk.org/guides/linux_gsg/linux_drivers.html#binding-and-unbinding-network-ports-to-from-the-kernel-modules


推荐阅读