<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