"EAL: No available hugepages reported in hugepages-1048576kB"在dpdk中是什么意思?

what does "EAL: No available hugepages reported in hugepages-1048576kB" mean in dpdk?

我是 DPDK 的新手,我正在服务器上安装 DPDK 版本的 suricata。当我运行suricata --list-dpdkports时,显示

EAL: Detected 128 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /tmp/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: No available hugepages reported in hugepages-1048576kB
EAL: Probing VFIO support...
EAL: Couldn't get fd on hugepage file
EAL: error allocating rte services array
EAL: FATAL: rte_service_init() failed
EAL: rte_service_init() failed
5/11/2020 -- 21:41:45 - <Error> - [ERRCODE: SC_ERR_DPDK_CONFIG(319)] -  DPDK init failed

EAL: No available hugepages reported in hugepages-1048576kB是什么意思?无论我设置了多少大页面,它总是显示。

AnonHugePages:    104448 kB
HugePages_Total:    8192
HugePages_Free:     8191
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

我是DPDK新手,网上找的解决方案大多是No Free hugepages reported。我真的很想知道这意味着什么。谢谢你的帮助。

@Ericsun 日志 EAL: No available hugepages reported in hugepages-1048576kB 是正常的,因为你的大页面是 2048 kB。 x86 上的 DPDK 可以使用 2MB 或 1GB 大页面。在函数 rte_eal_init 中,两者都被探测。在您当前的设置中,找不到 1GB。因此 rte_eal_init 记录相同。

你的错误是

EAL: Couldn't get fd on hugepage file
EAL: error allocating rte services array
EAL: FATAL: rte_service_init() failed

使用 sudo 提升权限并通过 mmap 访问大页面。