Hi,

I am encountering a problem running DPDK apps inside containers, and need your 
help:

I create containers by doing:

lxc-create -t ubuntu -n fpc0
lxc-start -n fpc0

(Reserve hugepages and follow all other steps to run the DPDK app on host)

Then run a standard dpdk app, on host, it works fine, inside container, it runs 
into this problem:

ubuntu at fpc0:/dpdk/x86_64-default-linuxapp-gcc/app$ ./testpmd -c f -n 4 -- -i
rte_eal_init : 857
opt : 99
opt : 110
EAL: No free hugepages reported in hugepages-2048kB
PANIC in rte_eal_init():
Cannot get hugepage information
6: [./testpmd() [0x402941]]
5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f7f14f50ec5]]
4: [./testpmd() [0x40237e]]
3: [./testpmd() [0x478edb]]
2: [./testpmd() [0x4022ad]]
1: [./testpmd() [0x47e3c3]]
Aborted
ubuntu at fpc0:/dpdk/x86_64-default-linuxapp-gcc/app$

However, running this same app on the host, or doing lxc-execute works.

While trying to debug my own dpdk app, I see that reading the same file for no 
of huge pages (

/sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages

 ), on the host, its value is read 2048, while inside the container it is 0. 
This is same file.
Also, if you cat the contents of this file, it is actually 0! (nr_hugepages is 
2048, but the DPDK code does not read this file.)

cat /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages
0


In the below logs, the 2 prints "EAL: Using .." and "EAL: path ..." are added 
by me in DPDL eal library.

On host:
rte_eal_init : 859
opt : 99
opt : 110
EAL: Using free_hugepages
EAL: path /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages
EAL: No of hugepages is 2048

Inside container:
pt : 99
opt : 110
EAL: Using free_hugepages
EAL: path /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages
EAL: No of hugepages is 0


Has anyone run into this problem and know what's the issue?

Anjali

Reply via email to