config/arm: add core and NUMA counts to cross files

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.linkes@pantheon.tech>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Tested-by: Jerin Jacob <jerinj@marvell.com>
Tested-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Tested-by: Vimal Chungath <vcchunga@amazon.com>
Tested-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
This commit is contained in:
Juraj Linkeš 2021-01-15 14:26:06 +01:00 committed by Thomas Monjalon
parent 78ac8eac7e
commit fe4ae32587
15 changed files with 54 additions and 6 deletions

View File

@ -16,3 +16,5 @@ endian = 'little'
[properties]
implementer_id = '0x56'
part_number = '0xd08'
max_lcores = 16
max_numa_nodes = 1

View File

@ -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

View File

@ -15,3 +15,5 @@ endian = 'little'
[properties]
implementer_id = '0x41'
part_number = '0xd08'
max_lcores = 16
max_numa_nodes = 1

View File

@ -16,3 +16,5 @@ endian = 'little'
[properties]
implementer_id = 'dpaa'
part_number = '0xd08'
max_lcores = 16
max_numa_nodes = 1

View File

@ -15,3 +15,5 @@ endian = 'little'
[properties]
implementer_id = '0x50'
part_number = '0x0'
max_lcores = 32
max_numa_nodes = 1

View File

@ -15,3 +15,5 @@ endian = 'little'
[properties]
implementor_id = '0x41'
implementor_pn = '0xd0c'
max_lcores = 64
max_numa_nodes = 1

View File

@ -15,3 +15,5 @@ endian = 'little'
[properties]
implementer_id = '0x41'
part_number = '0xd0c'
max_lcores = 4
max_numa_nodes = 1

View File

@ -15,3 +15,5 @@ endian = 'little'
[properties]
implementer_id = '0x41'
part_number = '0xd49'
max_lcores = 64
max_numa_nodes = 1

View File

@ -15,3 +15,5 @@ endian = 'little'
[properties]
implementer_id = '0x43'
part_number = '0xb2'
max_lcores = 36
max_numa_nodes = 1

View File

@ -15,3 +15,5 @@ endian = 'little'
[properties]
implementer_id = '0x41'
part_number = '0xd08'
max_lcores = 16
max_numa_nodes = 1

View File

@ -15,3 +15,5 @@ endian = 'little'
[properties]
implementer_id = '0x43'
part_number = '0xaf'
max_lcores = 256
max_numa_nodes = 2

View File

@ -15,3 +15,5 @@ endian = 'little'
[properties]
implementer_id = '0x43'
part_number = '0xa1'
max_lcores = 96
max_numa_nodes = 1

View File

@ -36,7 +36,8 @@ implementer_generic = {
'flags': [
['RTE_MACHINE', '"armv8a"'],
['RTE_USE_C11_MEM_MODEL', true],
['RTE_MAX_LCORE', 256]
['RTE_MAX_LCORE', 256],
['RTE_MAX_NUMA_NODES', 4]
],
'part_number_config': {
'generic': {'machine_args': ['-march=armv8-a+crc',
@ -61,8 +62,7 @@ part_number_config_arm = {
['RTE_EAL_NUMA_AWARE_HUGEPAGES', false],
['RTE_LIBRTE_VHOST_NUMA', false],
['RTE_MAX_MEM_MB', 1048576],
['RTE_MAX_LCORE', 80],
['RTE_MAX_NUMA_NODES', 1]
['RTE_MAX_LCORE', 80]
]
},
'0xd49': {
@ -82,7 +82,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
}
@ -119,8 +120,7 @@ implementer_cavium = {
['RTE_ARM_FEATURE_ATOMICS', true],
['RTE_USE_C11_MEM_MODEL', true],
['RTE_CACHE_LINE_SIZE', 64],
['RTE_MAX_LCORE', 256],
['RTE_MAX_NUMA_NODES', 2]
['RTE_MAX_LCORE', 256]
]
},
'0xb2': {

View File

@ -253,6 +253,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
# set the install path for the drivers
dpdk_conf.set_quoted('RTE_EAL_PMD_PATH', eal_pmd_path)

View File

@ -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