<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

Reply via email to