[dpdk-dev] Number of memory channels (EAL Options)

Stephen Hemminger stephen at networkplumber.org
Thu Jun 20 17:43:43 CEST 2013


On Thu, 20 Jun 2013 16:20:35 +0500
Muhammad Ali <Muhammad.Ali at xflowresearch.com> wrote:

> Hi everyone
> 
> I am running DPDK sample application compiled in Fedora 14 environment.
> 
> I have used following command to run the App
> 
> ./<application> -c f -n 4
> 
> c= bitmask of cores to to be used.
> and
> n= number of memory channels
> 
> Now what does 'n' actually defines ?. Is this the number of DMA channels
> between RAM (hugepages) and NIC. ? If not so then what it is ?
> 
> How does number of memory channels will effect the performance ?
> 
> BTW I am using hugepagesize=1G
> and Number of Hugepages=4
> 
> My question might be very basic, but I am totally confused. Please help me
> out here.
> 
> Thank you
> 
> Regards

Memory channels into the CPU, it controls the spread layout used by the memory
allocator, therefore it is a performance optimization.

Unfortunately, there is no good way to know what the number of memory channels
exactly without hardware specs. The BIOS may know but it is not exported in any
of the normal ACPI tables, and therefore not exposed by the OS.

What we end up doing in our startup script was
 "dmidecode -t 17 | grep -c 'Size:'" 
which will give you some idea of the number of populated memory banks and making
an educated guess on the number of channels. I.e 6 memory slots probably implies 3 channels.
If someone has a better way I would love to hear it.

Computing cpu bitmask isn't hard using "grep -c processor /proc/cpuinfo" and a
little maths in a shell script.



More information about the dev mailing list