<snip>

> 
> Add support for setting core count and numa nodes in cross files. The values
> specified in cross files will override the default values.
> Also add missing default values to Arm config.
> 
> Signed-off-by: Juraj Linkeš <juraj.lin...@pantheon.tech>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>

> ---
>  config/arm/arm64_armada_linux_gcc                 |  2 ++
>  config/arm/arm64_armv8_linux_gcc                  |  2 ++
>  config/arm/arm64_bluefield_linux_gcc              |  2 ++
>  config/arm/arm64_dpaa_linux_gcc                   |  2 ++
>  config/arm/arm64_emag_linux_gcc                   |  2 ++
>  config/arm/arm64_graviton2_linux_gcc              |  2 ++
>  config/arm/arm64_n1sdp_linux_gcc                  |  2 ++
>  config/arm/arm64_octeontx2_linux_gcc              |  2 ++
>  config/arm/arm64_stingray_linux_gcc               |  2 ++
>  config/arm/arm64_thunderx2_linux_gcc              |  2 ++
>  config/arm/arm64_thunderxt88_linux_gcc            |  2 ++
>  config/arm/meson.build                            |  6 ++++--
>  config/meson.build                                | 15 +++++++++++++++
>  .../linux_gsg/cross_build_dpdk_for_arm64.rst      |  9 +++++++++
>  14 files changed, 50 insertions(+), 2 deletions(-)
> 
> diff --git a/config/arm/arm64_armada_linux_gcc
> b/config/arm/arm64_armada_linux_gcc
> index 52c5f4476..73945fbb4 100644
> --- a/config/arm/arm64_armada_linux_gcc
> +++ b/config/arm/arm64_armada_linux_gcc
> @@ -15,3 +15,5 @@ endian = 'little'
> 
>  [properties]
>  implementer_id = '0x56'
> +max_lcores = 16
> +max_numa_nodes = 1
> diff --git a/config/arm/arm64_armv8_linux_gcc
> b/config/arm/arm64_armv8_linux_gcc
> index 0099f5ca2..5451a01da 100644
> --- a/config/arm/arm64_armv8_linux_gcc
> +++ b/config/arm/arm64_armv8_linux_gcc
> @@ -16,3 +16,5 @@ endian = 'little'
>  # Generate binaries that are portable across all Armv8 machines
> implementer_id = 'generic'
>  part_number = 'generic'
> +max_lcores = 256
> +max_numa_nodes = 4
> diff --git a/config/arm/arm64_bluefield_linux_gcc
> b/config/arm/arm64_bluefield_linux_gcc
> index b79389d85..4f56790c5 100644
> --- a/config/arm/arm64_bluefield_linux_gcc
> +++ b/config/arm/arm64_bluefield_linux_gcc
> @@ -15,3 +15,5 @@ endian = 'little'
>  [properties]
>  implementer_id = '0x41'
>  part_number = '0xd08'
> +max_lcores = 16
> +max_numa_nodes = 1
> diff --git a/config/arm/arm64_dpaa_linux_gcc
> b/config/arm/arm64_dpaa_linux_gcc index 573ae7e42..00101962b 100644
> --- a/config/arm/arm64_dpaa_linux_gcc
> +++ b/config/arm/arm64_dpaa_linux_gcc
> @@ -15,3 +15,5 @@ endian = 'little'
> 
>  [properties]
>  implementer_id = 'dpaa'
> +max_lcores = 16
> +max_numa_nodes = 1
> diff --git a/config/arm/arm64_emag_linux_gcc
> b/config/arm/arm64_emag_linux_gcc index c675954fc..7cbb05510 100644
> --- a/config/arm/arm64_emag_linux_gcc
> +++ b/config/arm/arm64_emag_linux_gcc
> @@ -15,3 +15,5 @@ endian = 'little'
>  [properties]
>  implementer_id = '0x50'
>  part_number = '0x0'
> +max_lcores = 32
> +max_numa_nodes = 1
> diff --git a/config/arm/arm64_graviton2_linux_gcc
> b/config/arm/arm64_graviton2_linux_gcc
> index 022e06303..d0bfec87d 100644
> --- a/config/arm/arm64_graviton2_linux_gcc
> +++ b/config/arm/arm64_graviton2_linux_gcc
> @@ -15,3 +15,5 @@ endian = 'little'
>  [properties]
>  implementor_id = '0x41'
>  implementor_pn = '0xd0c'
> +max_lcores = 64
> +max_numa_nodes = 1
> diff --git a/config/arm/arm64_n1sdp_linux_gcc
> b/config/arm/arm64_n1sdp_linux_gcc
> index 6fb3f02ea..138ae08c3 100644
> --- a/config/arm/arm64_n1sdp_linux_gcc
> +++ b/config/arm/arm64_n1sdp_linux_gcc
> @@ -15,3 +15,5 @@ endian = 'little'
>  [properties]
>  implementer_id = '0x41'
>  part_number = '0xd0c'
> +max_lcores = 4
> +max_numa_nodes = 1
> diff --git a/config/arm/arm64_octeontx2_linux_gcc
> b/config/arm/arm64_octeontx2_linux_gcc
> index ac1042806..26cf471ad 100644
> --- a/config/arm/arm64_octeontx2_linux_gcc
> +++ b/config/arm/arm64_octeontx2_linux_gcc
> @@ -15,3 +15,5 @@ endian = 'little'
>  [properties]
>  implementer_id = '0x43'
>  part_number = '0xb2'
> +max_lcores = 36
> +max_numa_nodes = 1
> diff --git a/config/arm/arm64_stingray_linux_gcc
> b/config/arm/arm64_stingray_linux_gcc
> index b79389d85..4f56790c5 100644
> --- a/config/arm/arm64_stingray_linux_gcc
> +++ b/config/arm/arm64_stingray_linux_gcc
> @@ -15,3 +15,5 @@ endian = 'little'
>  [properties]
>  implementer_id = '0x41'
>  part_number = '0xd08'
> +max_lcores = 16
> +max_numa_nodes = 1
> diff --git a/config/arm/arm64_thunderx2_linux_gcc
> b/config/arm/arm64_thunderx2_linux_gcc
> index dd257745e..c06dcdc2b 100644
> --- a/config/arm/arm64_thunderx2_linux_gcc
> +++ b/config/arm/arm64_thunderx2_linux_gcc
> @@ -15,3 +15,5 @@ endian = 'little'
>  [properties]
>  implementer_id = '0x43'
>  part_number = '0xaf'
> +max_lcores = 256
> +max_numa_nodes = 2
> diff --git a/config/arm/arm64_thunderxt88_linux_gcc
> b/config/arm/arm64_thunderxt88_linux_gcc
> index 758966262..3ba1528e4 100644
> --- a/config/arm/arm64_thunderxt88_linux_gcc
> +++ b/config/arm/arm64_thunderxt88_linux_gcc
> @@ -15,3 +15,5 @@ endian = 'little'
>  [properties]
>  implementer_id = '0x43'
>  part_number = '0xa1'
> +max_lcores = 96
> +max_numa_nodes = 1
> diff --git a/config/arm/meson.build b/config/arm/meson.build index
> cdbdcee85..fdc402898 100644
> --- a/config/arm/meson.build
> +++ b/config/arm/meson.build
> @@ -38,7 +38,8 @@ implementer_generic = {
>               ['RTE_MACHINE', '"armv8a"'],
>               ['RTE_USE_C11_MEM_MODEL', true],
>               ['RTE_CACHE_LINE_SIZE', 128],
> -             ['RTE_MAX_LCORE', 256]
> +             ['RTE_MAX_LCORE', 256],
> +             ['RTE_MAX_NUMA_NODES', 4]
>       ],
>       'part_number_config': {
>               'generic': {'machine_args': ['-march=armv8-a+crc', @@ -76,7
> +77,8 @@ implementer_arm = {
>               ['RTE_MACHINE', '"armv8a"'],
>               ['RTE_USE_C11_MEM_MODEL', true],
>               ['RTE_CACHE_LINE_SIZE', 64],
> -             ['RTE_MAX_LCORE', 16]
> +             ['RTE_MAX_LCORE', 16],
> +             ['RTE_MAX_NUMA_NODES', 1]
>       ],
>       'part_number_config': part_number_config_arm  } diff --git
> a/config/meson.build b/config/meson.build index ce0abe49b..208d1ea01
> 100644
> --- a/config/meson.build
> +++ b/config/meson.build
> @@ -249,6 +249,21 @@ compile_time_cpuflags = []
>  subdir(arch_subdir)
>  dpdk_conf.set('RTE_COMPILE_TIME_CPUFLAGS',
> ','.join(compile_time_cpuflags))
> 
> +# apply cross-specific options
> +if meson.is_cross_build()
> +     # configure RTE_MAX_LCORE and RTE_MAX_NUMA_NODES from
> cross file
> +     cross_max_lcores = meson.get_cross_property('max_lcores', 0)
> +     if cross_max_lcores != 0
> +             message('Setting RTE_MAX_LCORE from cross file')
> +             dpdk_conf.set('RTE_MAX_LCORE', cross_max_lcores)
> +     endif
> +     cross_max_numa_nodes =
> meson.get_cross_property('max_numa_nodes', 0)
> +     if cross_max_numa_nodes != 0
> +             message('Setting RTE_MAX_NUMA_NODES from cross file')
> +             dpdk_conf.set('RTE_MAX_NUMA_NODES',
> cross_max_numa_nodes)
> +     endif
> +endif
> +
>  max_lcores = get_option('max_lcores')
>  if max_lcores > 0
>       # Overwrite the default value from arch_subdir with user input 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 6a883b030..4e65b271c 100644
> --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst
> @@ -134,3 +134,12 @@ you may use various combinations of
> implementer/part number::
> 
>     Supported part_numbers for 0x50:
>        '0x0':     emag
> +
> +Other cross file options
> +------------------------
> +
> +There are other options you may specify in a cross file to tailor the build::
> +
> +   Supported extra configuration
> +      max_numa_nodes = n  # will set RTE_MAX_NUMA_NODES
> +      max_lcores = n      # will set RTE_MAX_LCORE
> --
> 2.20.1

Reply via email to