On Fri, Aug 28, 2020 at 11:11:36AM +0000, Juraj Linkeš wrote: > > > > -----Original Message----- From: Bruce Richardson > > <bruce.richard...@intel.com> Sent: Friday, August 28, 2020 12:30 PM To: > > Juraj Linkeš <juraj.lin...@pantheon.tech> Cc: dev@dpdk.org Subject: Re: > > [dpdk-dev] DPDK 20.08 meson build testpmd not detecting all NUMA nodes > > > > On Fri, Aug 28, 2020 at 11:20:02AM +0100, Bruce Richardson wrote: > > > On Fri, Aug 28, 2020 at 09:26:12AM +0000, Juraj Linkeš wrote: > > > > Hello DPDK devs, > > > > > > > > I've meson built (using just meson build && ninja -C build) > > > > dpdk-20.08 > > (downloaded from the site) on a Taishan arm server and dpdk-testpmd is > > incorrectly detecting NUMA nodes on the system: > > > > EAL: Detected 16 lcore(s) EAL: Detected 1 NUMA nodes > > > > > > > > lscpu report 4 NUMA nodes: NUMA node0 CPU(s): 0-15 NUMA node1 > > > > CPU(s): 16-31 NUMA node2 CPU(s): 32-47 NUMA node3 CPU(s): > > > > 48-63 > > > > > > > > When built with make T=arm64-armv8a-linuxapp-gcc testpmd is > > > > detecting > > NUMA nodes correctly: > > > > EAL: Detected 64 lcore(s) EAL: Detected 4 NUMA nodes > > > > > > > > Any idea what's the difference between the builds? I've looked at > > > > NUMA > > config options but those seem ok to me: > > > > grep NUMA arm64-armv8a-linuxapp-gcc/.config > > > > build/rte_build_config.h > > > > arm64-armv8a-linuxapp-gcc/.config:CONFIG_RTE_MAX_NUMA_NODES=8 > > > > arm64-armv8a-linuxapp-gcc/.config:# a "type" is a combination of > > > > page size and NUMA node. total number of memseg > > > > arm64-armv8a-linuxapp- > > gcc/.config:CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGE > > > > S=y arm64-armv8a-linuxapp- > > gcc/.config:CONFIG_RTE_LIBRTE_VHOST_NUMA=y > > > > build/rte_build_config.h:#define RTE_EAL_NUMA_AWARE_HUGEPAGES 1 > > > > build/rte_build_config.h:#define RTE_HAS_LIBNUMA 1 > > > > build/rte_build_config.h:#define RTE_LIBRTE_VHOST_NUMA 1 > > > > build/rte_build_config.h:#define RTE_MAX_NUMA_NODES 4 > > > > > > > > Any pointers are welcome. > > > > > > > What is the max lcores value in your build config? Do you know what > > > settings are being chosen for your platform in > > > config/arm/meson.build? > > > > > By way of follow-up, the reason to look at the cores is that the number > > of numa nodes is detected simply by iterating through all the cores > > discovered and finding out what NUMA node they are on. If only 16 cores > > are allowed, then only one NUMA node will be found because all cores > > discovered will report that as their NUMA location. > > > > /Bruce > > Thanks Bruce, RTE_MAX_LCORE is being set only to 16 (line 39 in > config/arm/meson.build), so that's the cause. Why is this used in native > builds? Shouldn't this be discovered? > > I any case, setting it statically for implementer 0x41 seems wrong, as > there's a big variety different processors under it: > https://github.com/bp0/armids/blob/master/arm.ids > Sorry, no idea about this, since I don't generally work on/with the arm/meson.build file. Looking at git, that particular value seems to come from commit d97108a33231 ("config: change defaults of armv8"), so perhaps check with the author and reviewer of that patch. [Adding them on CC]
Regards, /Bruce