[dpdk-dev] [PATCH 5/6] ip_pipeline: fix lcore mapping for varying SMT threads as in ppc64

Gowrishankar gowrishankar.m at linux.vnet.ibm.com
Thu Jul 7 04:57:55 CEST 2016


From: gowrishankar <gowrishankar.m at linux.vnet.ibm.com>

offline lcore would still refer to original core id and this has to
be considered while creating cpu core mask.

Signed-off-by: Gowrishankar <gowrishankar.m at linux.vnet.ibm.com>
---
 examples/ip_pipeline/cpu_core_map.c | 12 +-----------
 examples/ip_pipeline/init.c         |  4 ++++
 2 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/examples/ip_pipeline/cpu_core_map.c b/examples/ip_pipeline/cpu_core_map.c
index cb088b1..482e68e 100644
--- a/examples/ip_pipeline/cpu_core_map.c
+++ b/examples/ip_pipeline/cpu_core_map.c
@@ -351,9 +351,6 @@ cpu_core_map_compute_linux(struct cpu_core_map *map)
 			int lcore_socket_id =
 				cpu_core_map_get_socket_id_linux(lcore_id);
 
-			if (lcore_socket_id < 0)
-				return -1;
-
 			if (((uint32_t) lcore_socket_id) == socket_id)
 				n_detected++;
 		}
@@ -368,18 +365,11 @@ cpu_core_map_compute_linux(struct cpu_core_map *map)
 					cpu_core_map_get_socket_id_linux(
 					lcore_id);
 
-				if (lcore_socket_id < 0)
-					return -1;
-
 				int lcore_core_id =
 					cpu_core_map_get_core_id_linux(
 						lcore_id);
 
-				if (lcore_core_id < 0)
-					return -1;
-
-				if (((uint32_t) lcore_socket_id == socket_id) &&
-					((uint32_t) lcore_core_id == core_id)) {
+				if ((uint32_t) lcore_socket_id == socket_id) {
 					uint32_t pos = cpu_core_map_pos(map,
 						socket_id,
 						core_id_contig,
diff --git a/examples/ip_pipeline/init.c b/examples/ip_pipeline/init.c
index 83422e8..4acd38c 100644
--- a/examples/ip_pipeline/init.c
+++ b/examples/ip_pipeline/init.c
@@ -59,7 +59,11 @@ static void
 app_init_core_map(struct app_params *app)
 {
 	APP_LOG(app, HIGH, "Initializing CPU core map ...");
+#if defined(RTE_ARCH_PPC_64)
+	app->core_map = cpu_core_map_init(2, 5, 1, 0);
+#else
 	app->core_map = cpu_core_map_init(4, 32, 4, 0);
+#endif
 
 	if (app->core_map == NULL)
 		rte_panic("Cannot create CPU core map\n");
-- 
1.9.1



More information about the dev mailing list