[dpdk-users] rte_eal_memseg_init(), virtual memory usage and coredump size

Valerii Malov jazzvoid at gmail.com
Thu Jul 2 14:56:50 CEST 2020


Hi,



I've noticed since upgrading to one of the recent DPDK versions (I think 
it was DPDK 19), Linux application started to allocate rather big chunks 
of virtual memory. This causes coredump file size to blow up, and 
playing around with coredump_filter doesn't seem to help, since this is 
not hugepages memory.




After digging through initialization process, seems like 
rte_eal_memseg_init() is the culprit. It preallocates chunks for each 
memory "type", until it hits one of the ceilings, in my case it's 
default RTE_MAX_MEM_MB_PER_TYPE, which happens to be default 64 
gigabytes, so on 2 numa node system this results in nearly extra 128 
gigabytes of virtual memory.

Surprisingly enough, in FreeBSD implementation of rte_eal_memseg_init() 
virtual memory usage seems to be a concern due to coredump file size 
specifically.

Are there any ways to reduce the coredump file size apart from building 
DPDK with reduced RTE_MAX_MEM_MB_PER_TYPE? Am I missing something in 
system configuration and Linux is not supposed to dump those unused 
virtual memory pages? This behavior is expressed on CentOS7, but I 
*think* it was also reproducible on more modern distributions.

Thanks in advance,
Valerii.


More information about the users mailing list