[dpdk-dev] [Bug 106] running dpdk-procinfo or any secondary leading to system memory exhaustion

Mattias Rönnblom mattias.ronnblom at ericsson.com
Mon Nov 12 20:31:43 CET 2018


On 2018-11-12 11:44, bugzilla at dpdk.org wrote:
> https://bugs.dpdk.org/show_bug.cgi?id=106
> 
>              Bug ID: 106
>             Summary: running dpdk-procinfo or any secondary leading to
>                      system memory exhaustion
>             Product: DPDK
>             Version: 18.05
>            Hardware: x86
>                  OS: Linux
>              Status: CONFIRMED
>            Severity: critical
>            Priority: Normal
>           Component: core
>            Assignee: dev at dpdk.org
>            Reporter: vipin.varghese at intel.com
>    Target Milestone: ---
> 
> Issue: Running dpdk secondary instance in multiple iterations leads to memory
> exhaustion
> 

Exhaustion, meaning the kernel eventually - given enough iterations of 
the test program - invoke the OOM handler (i.e. crash)?

> 
> Run script:
> #!/bin/sh
> 
> ./build/app/test
> ret=$?
> 
> while [ $ret -eq 0 ]
> do
>     sync; echo 3 > /proc/sys/vm/drop_caches
>     ./build/app/test
>     ret=$?
>     echo "ret ---------------- $ret"
> done
> 

An application causing the kernel to cache more pages wouldn't normally 
be considered to be leaking memory, if those pages are not dirty. If 
"echo 3 > /proc/sys/vm/drop_caches" frees the memory "leaked", it wasn't 
leaked. That holds true even for system with swapping enabled.

You can't use MemFree (in /proc/meminfo) or similar as an indication how 
much memory is actually available to applications, would they need it. 
Pages that "echo 3 > /proc/sys/vm/drop_caches" frees, would also be free 
would the system come under memory pressure. A drop in MemAvailable is a 
better indication of applications' using more memory.

find $HOME -type f | xargs cat >/dev/null
For example, find+cat above aren't leaking memory, even if the pipeline 
likely causes MemFree to go down.

Anyway. If the answer to my first question is "the kernel crashes", you 
can ignore all this.


More information about the dev mailing list