keye
keye

Reputation: 125

DPDK suddenly stopped working with error 'EAL: No available 1048576 kB hugepages reported'

I installed DPDK on my ubuntu server 18.04 TLS with kernel 5.4.82 and everything worked fine with dpdk_testpmd until a roundtrip upgrade to/downgrade from kernel 5.9. All of sudden it stopped working with error 'EAL: No available 1048576 kB hugepages reported' even after using hugeadm to create hugepages. From /proc/meminfo, HugePage_Free * HugePageSize is 1724416 kB which is more than 1048575 kB.

Is there any reason DPDK is not able to see those pages?

/usr/bin/hugeadm --pool-pages-min DEFAULT:2G -vvv

hugeadm:DEBUG: HUGETLB_VERBOSE='5'
hugeadm:INFO: page_size<DEFAULT> adjust<2G> counter<0>
hugeadm:DEBUG: Working with page_size of 2097152
hugeadm:DEBUG: Returning page count of 1024
hugeadm:INFO: 1024, 1024 -> 1024, 1024
hugeadm:INFO: setting HUGEPAGES_TOTAL to 1024

cat /proc/meminfo | grep -i huge

AnonHugePages:         0 kB
ShmemHugePages:        0 kB
FileHugePages:         0 kB
HugePages_Total:    1024
HugePages_Free:      842
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:         2097152 kB

./dpdk-testpmd -- --total-num-mbufs=131072

EAL: Detected 40 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode 'PA'
EAL: No available 1048576 kB hugepages reported
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: DPDK is running on a NUMA system, but is compiled without NUMA support.
EAL: This will have adverse consequences for performance and usability.
EAL: Please use --legacy-mem option, or recompile with NUMA support.
..... Removed text about PCIe device probe here .....
EAL: No legacy callbacks, legacy socket not created
testpmd: create a new mbuf pool <mb_pool_0>: n=131072, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
testpmd: create a new mbuf pool <mb_pool_1>: n=131072, size=2176, socket=1
testpmd: preferred mempool ops selected: ring_mp_mc
EAL: Error - exiting with code: 1
  Cause: Creation of mbuf pool for socket 1 failed: Cannot allocate memory

Upvotes: 2

Views: 3901

Answers (1)

keye
keye

Reputation: 125

I figured out the problem. The system is missing libnuma-dev, probably was removed by mistake during my previous kernel update. After re-installing libnuma-dev and recompile DPDK with meson and ninja, everything is working fine again.

Upvotes: 4

Related Questions