[dpdk-dev] How can I recover from CONFIG_RTE_MAX_MEMSEG overrun?

Dennis Montgomery dmontgomery at 128technology.com
Wed Mar 11 16:53:44 CET 2015


Hello,

I’m running into an occasional problem where rte_eal_init() returns -ENOMEM and the following error is logged:

EAL: Can only reserve 991 pages from 1024 requested
Current CONFIG_RTE_MAX_MEMSEG=256 is not enough

When this happens a reboot will take care of it, but I’m hoping for a more elegant solution. I don’t have much direct experience with hugetlbfs so I’m hoping someone on this list can suggest something.

I did boost max-memseg and it works, but I’m worried that it will just crop up again - I instrumented rte_eal_hugepage_init() and found that the number of segments used slowly creeps up as I cycle my application (i.e. repeated rte_eal_init() invocations with process-type == primary). I’m theorizing that hugetlbfs fragments (for lack of a better phrase) over time. Does anyone on the list know of a way to reset hugetlbfs short of rebooting?

DPDK version:
EAL: RTE Version: 'RTE 1.8.0-rc0'
Linux version 3.16.6-200.fc20.x86_64 (mockbuild at bkernel01.phx2.fedoraproject.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-7) (GCC) ) #1 SMP Wed Oct 15 13:06:51 UTC 2014


Thank you,

Dennis Montgomery

PS this is my first post to this list; apologies if I’m violating any protocols.


More information about the dev mailing list