Hi All,

We have been using DPDK for quite sometime. First let me tell my assumption on 
how the DPDK works. For the DPDK memory allocation we give size in terms of MB. 
When this size is given the rte_eal_memory probes for the sysctl files and 
figures the starting Physical address of the huge pages. Depending on the size 
given some number of huge pages should be available. So whenever the memory is 
not contiguous different segments are formed and each segment is contiguous. 
The Physical addresses are memory mapped and heap regions are formed and 
rte_malloc returns the memory from this Heap.

We give 2GB to our application and the rte_eal initialisation takes place 
successfully. But in the application the rte_malloc fails. This happens 
randomly When we reboot the system we don’t see this issue. So my doubt is why 
does this happen, DPDK memory initialisation is successful but the memory 
allocation fails. We are sure that application has not consumed 2GB of memory.  
Is there any condition that we should reboot the system for every run of 
application that uses DPDK.Should we do anything when we restart the 
application say some cleanup after the first run.

Thanking You,
Param.

Reply via email to