<snip> > > Some Arm SoCs are not NUMA systems. Add the capability to disable NUMA > for cross build and disabled NUMA in Arm cross files. > > Signed-off-by: Juraj Linkeš <juraj.lin...@pantheon.tech> Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>
> --- > config/arm/arm64_armada_linux_gcc | 1 + > config/arm/arm64_bluefield_linux_gcc | 1 + > config/arm/arm64_dpaa_linux_gcc | 1 + > config/arm/arm64_graviton2_linux_gcc | 1 + > config/arm/arm64_n1sdp_linux_gcc | 1 + > config/arm/arm64_octeontx2_linux_gcc | 1 + > config/arm/arm64_stingray_linux_gcc | 1 + > config/arm/meson.build | 2 -- > config/meson.build | 19 +++++++++++++------ > .../linux_gsg/cross_build_dpdk_for_arm64.rst | 4 ++++ > 10 files changed, 24 insertions(+), 8 deletions(-) > > diff --git a/config/arm/arm64_armada_linux_gcc > b/config/arm/arm64_armada_linux_gcc > index 7383f42e2..f5403f0a6 100644 > --- a/config/arm/arm64_armada_linux_gcc > +++ b/config/arm/arm64_armada_linux_gcc > @@ -17,4 +17,5 @@ endian = 'little' > implementer_id = '0x56' > max_lcores = 16 > max_numa_nodes = 1 > +numa = false > disabled_drivers = ['bus/dpaa', 'bus/fslmc', 'common/dpaax'] diff --git > a/config/arm/arm64_bluefield_linux_gcc > b/config/arm/arm64_bluefield_linux_gcc > index 4f56790c5..6bef87fbd 100644 > --- a/config/arm/arm64_bluefield_linux_gcc > +++ b/config/arm/arm64_bluefield_linux_gcc > @@ -17,3 +17,4 @@ implementer_id = '0x41' > part_number = '0xd08' > max_lcores = 16 > max_numa_nodes = 1 > +numa = false > diff --git a/config/arm/arm64_dpaa_linux_gcc > b/config/arm/arm64_dpaa_linux_gcc index 00101962b..3458b9d7b 100644 > --- a/config/arm/arm64_dpaa_linux_gcc > +++ b/config/arm/arm64_dpaa_linux_gcc > @@ -17,3 +17,4 @@ endian = 'little' > implementer_id = 'dpaa' > max_lcores = 16 > max_numa_nodes = 1 > +numa = false > diff --git a/config/arm/arm64_graviton2_linux_gcc > b/config/arm/arm64_graviton2_linux_gcc > index d0bfec87d..cfe239797 100644 > --- a/config/arm/arm64_graviton2_linux_gcc > +++ b/config/arm/arm64_graviton2_linux_gcc > @@ -17,3 +17,4 @@ implementor_id = '0x41' > implementor_pn = '0xd0c' > max_lcores = 64 > max_numa_nodes = 1 > +numa = false > diff --git a/config/arm/arm64_n1sdp_linux_gcc > b/config/arm/arm64_n1sdp_linux_gcc > index 138ae08c3..b00f2d1ef 100644 > --- a/config/arm/arm64_n1sdp_linux_gcc > +++ b/config/arm/arm64_n1sdp_linux_gcc > @@ -17,3 +17,4 @@ implementer_id = '0x41' > part_number = '0xd0c' > max_lcores = 4 > max_numa_nodes = 1 > +numa = false > diff --git a/config/arm/arm64_octeontx2_linux_gcc > b/config/arm/arm64_octeontx2_linux_gcc > index 26cf471ad..593769709 100644 > --- a/config/arm/arm64_octeontx2_linux_gcc > +++ b/config/arm/arm64_octeontx2_linux_gcc > @@ -17,3 +17,4 @@ implementer_id = '0x43' > part_number = '0xb2' > max_lcores = 36 > max_numa_nodes = 1 > +numa = false > diff --git a/config/arm/arm64_stingray_linux_gcc > b/config/arm/arm64_stingray_linux_gcc > index 4f56790c5..6bef87fbd 100644 > --- a/config/arm/arm64_stingray_linux_gcc > +++ b/config/arm/arm64_stingray_linux_gcc > @@ -17,3 +17,4 @@ implementer_id = '0x41' > part_number = '0xd08' > max_lcores = 16 > max_numa_nodes = 1 > +numa = false > diff --git a/config/arm/meson.build b/config/arm/meson.build index > 7233db120..a2584b1fb 100644 > --- a/config/arm/meson.build > +++ b/config/arm/meson.build > @@ -62,8 +62,6 @@ part_number_config_arm = { > ['RTE_MACHINE', '"neoverse-n1"'], > ['RTE_ARM_FEATURE_ATOMICS', true], > ['RTE_USE_C11_MEM_MODEL', true], > - ['RTE_EAL_NUMA_AWARE_HUGEPAGES', false], > - ['RTE_LIBRTE_VHOST_NUMA', false], > ['RTE_MAX_MEM_MB', 1048576], > ['RTE_CACHE_LINE_SIZE', 64], > ['RTE_MAX_LCORE', 64], > diff --git a/config/meson.build b/config/meson.build index > 208d1ea01..2ddde22b7 100644 > --- a/config/meson.build > +++ b/config/meson.build > @@ -141,12 +141,19 @@ endif > > # check for libraries used in multiple places in DPDK has_libnuma = 0 - > numa_dep = cc.find_library('numa', required: false) -if numa_dep.found() > and cc.has_header('numaif.h') > - dpdk_conf.set10('RTE_HAS_LIBNUMA', true) > - has_libnuma = 1 > - add_project_link_arguments('-lnuma', language: 'c') > - dpdk_extra_ldflags += '-lnuma' > +find_libnuma = true > +if meson.is_cross_build() and not meson.get_cross_property('numa', true) > + # don't look for libnuma if explicitly disabled in cross build > + check_libnuma = false > +endif > +if find_libnuma > + numa_dep = cc.find_library('numa', required: false) > + if numa_dep.found() and cc.has_header('numaif.h') > + dpdk_conf.set10('RTE_HAS_LIBNUMA', true) > + has_libnuma = 1 > + add_project_link_arguments('-lnuma', language: 'c') > + dpdk_extra_ldflags += '-lnuma' > + endif > endif > > has_libfdt = 0 > diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst > b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst > index 210ad4508..063661ebf 100644 > --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst > +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst > @@ -147,3 +147,7 @@ There are other options you may specify in a cross file > to tailor the build:: > disabled_drivers = ['bus/dpaa', 'crypto'] # add disabled drivers > # valid values are directories (optionally with their subdirs) > # in the drivers directory > + > + numa = false # set to false to force building for a non-NUMA > system > + # if not set or set to true, the build system will build for a NUMA > + # system only if libnuma is installed > -- > 2.20.1