[dpdk-dev] [PATCH v6 09/11] build: add core and NUMA counts to cross files

Juraj Linkeš juraj.linkes at pantheon.tech
Mon Nov 2 14:21:16 CET 2020


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 at pantheon.tech>
---
 config/arm/arm64_armada_linux_gcc    |  2 ++
 config/arm/arm64_armv8_linux_gcc     |  6 ++++++
 config/arm/arm64_bluefield_linux_gcc |  2 ++
 config/arm/arm64_dpaa_linux_gcc      |  2 ++
 config/arm/arm64_emag_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_thunderx_linux_gcc  |  2 ++
 config/arm/meson.build               |  6 ++++--
 config/meson.build                   | 15 +++++++++++++++
 12 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/config/arm/arm64_armada_linux_gcc b/config/arm/arm64_armada_linux_gcc
index 52214f2d8..381971cc5 100644
--- a/config/arm/arm64_armada_linux_gcc
+++ b/config/arm/arm64_armada_linux_gcc
@@ -16,3 +16,5 @@ endian = 'little'
 [properties]
 implementer_id = '0x56'
 part_number = 'generic'
+max_numa_nodes = 1
+max_lcores = 16
diff --git a/config/arm/arm64_armv8_linux_gcc b/config/arm/arm64_armv8_linux_gcc
index 13ee8b223..779333199 100644
--- a/config/arm/arm64_armv8_linux_gcc
+++ b/config/arm/arm64_armv8_linux_gcc
@@ -26,3 +26,9 @@ implementer_id = 'generic'
 # '0xd0a':   cortex-a75
 # '0xd0b':   cortex-a76
 part_number = 'generic'
+
+# Supported extra configuration
+# max_numa_nodes = n  # will set RTE_MAX_NUMA_NODES
+# max_lcores = n      # will set RTE_MAX_LCORE
+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..7ff6fd309 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_numa_nodes = 1
+max_lcores = 16
diff --git a/config/arm/arm64_dpaa_linux_gcc b/config/arm/arm64_dpaa_linux_gcc
index 29f1581de..79e1ddb95 100644
--- a/config/arm/arm64_dpaa_linux_gcc
+++ b/config/arm/arm64_dpaa_linux_gcc
@@ -16,3 +16,5 @@ endian = 'little'
 [properties]
 implementer_id = 'dpaa'
 part_number = 'generic'
+max_numa_nodes = 1
+max_lcores = 16
diff --git a/config/arm/arm64_emag_linux_gcc b/config/arm/arm64_emag_linux_gcc
index 14ecf9a12..23a4a7971 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 = 'generic'
+max_numa_nodes = 1
+max_lcores = 32
diff --git a/config/arm/arm64_n1sdp_linux_gcc b/config/arm/arm64_n1sdp_linux_gcc
index 6fb3f02ea..3a8b46812 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_numa_nodes = 1
+max_lcores = 4
diff --git a/config/arm/arm64_octeontx2_linux_gcc b/config/arm/arm64_octeontx2_linux_gcc
index ac1042806..2baf95a2a 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_numa_nodes = 1
+max_lcores = 36
diff --git a/config/arm/arm64_stingray_linux_gcc b/config/arm/arm64_stingray_linux_gcc
index b79389d85..7ff6fd309 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_numa_nodes = 1
+max_lcores = 16
diff --git a/config/arm/arm64_thunderx2_linux_gcc b/config/arm/arm64_thunderx2_linux_gcc
index dd257745e..07440fe5f 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_numa_nodes = 2
+max_lcores = 256
diff --git a/config/arm/arm64_thunderx_linux_gcc b/config/arm/arm64_thunderx_linux_gcc
index 6fa29886d..b9c55d60f 100644
--- a/config/arm/arm64_thunderx_linux_gcc
+++ b/config/arm/arm64_thunderx_linux_gcc
@@ -15,3 +15,5 @@ endian = 'little'
 [properties]
 implementer_id = '0x43'
 part_number = 'generic'
+max_numa_nodes = 1
+max_lcores = 96
diff --git a/config/arm/meson.build b/config/arm/meson.build
index 4cb5274b1..e65d06e5d 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -35,13 +35,15 @@ flags_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]
 ]
 flags_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]
 ]
 flags_implementer_cavium = [
 	['RTE_MAX_VFIO_GROUPS', 128],
diff --git a/config/meson.build b/config/meson.build
index 700e32b00..7b822890a 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_NUMA_NODES and RTE_MAX_LCORE from cross file
+	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
+	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
+endif
+
 max_lcores = get_option('max_lcores')
 max_numa_nodes = get_option('max_numa_nodes')
 if max_lcores > 0
-- 
2.20.1



More information about the dev mailing list