[dpdk-users] DPDK Memory Allocation
krath at cloudsimple.com
Fri Sep 22 19:09:37 CEST 2017
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.
More information about the users