Gowrishankar,

Can you give more description about this patch? 
Thank you!

-----Original Message-----
From: Gowrishankar Muthukrishnan [mailto:gowrishanka...@linux.vnet.ibm.com] 
Sent: 2016?8?6? 20:33
To: dev at dpdk.org
Cc: Chao Zhu <chaozhu at linux.vnet.ibm.com>; Bruce Richardson
<bruce.richardson at intel.com>; Konstantin Ananyev
<konstantin.ananyev at intel.com>; Thomas Monjalon <thomas.monjalon at 
6wind.com>;
Cristian Dumitrescu <cristian.dumitrescu at intel.com>; Pradeep
<pradeep at us.ibm.com>; gowrishankar <gowrishankar.m at linux.vnet.ibm.com>
Subject: [PATCH v4 3/6] ip_pipeline: fix lcore mapping for varying SMT
threads as in ppc64

From: gowrishankar <gowrishanka...@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>
---
 config/defconfig_ppc_64-power8-linuxapp-gcc |  3 ---
 examples/ip_pipeline/cpu_core_map.c         | 12 +-----------
 examples/ip_pipeline/init.c                 |  4 ++++
 3 files changed, 5 insertions(+), 14 deletions(-)

diff --git a/config/defconfig_ppc_64-power8-linuxapp-gcc
b/config/defconfig_ppc_64-power8-linuxapp-gcc
index dede34f..a084672 100644
--- a/config/defconfig_ppc_64-power8-linuxapp-gcc
+++ b/config/defconfig_ppc_64-power8-linuxapp-gcc
@@ -58,6 +58,3 @@ CONFIG_RTE_LIBRTE_FM10K_PMD=n

 # This following libraries are not available on Power. So they're turned
off.
 CONFIG_RTE_LIBRTE_SCHED=n
-CONFIG_RTE_LIBRTE_PORT=n
-CONFIG_RTE_LIBRTE_TABLE=n
-CONFIG_RTE_LIBRTE_PIPELINE=n
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;
-
Why to remove the lcore_socket_id check?

                                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
cd167f6..60c931f 100644
--- a/examples/ip_pipeline/init.c
+++ b/examples/ip_pipeline/init.c
@@ -61,7 +61,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

This value seems quite strange. Can you give more detail?

        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


Reply via email to