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.