From: Adrien Mazarguil <adrien.mazarg...@6wind.com>

When NUMA is enabled, the per-core fwd_lcore structure mbuf pool pointer
is not set, causing a crash.

Initialize fwd_lcore after allocating NUMA memory pools.

Signed-off-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com>
---
 app/test-pmd/testpmd.c |   20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 97229a5..9c56914 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -552,15 +552,6 @@ init_config(void)
                        mbuf_pool_create(mbuf_data_size, nb_mbuf_per_pool,
                                                 socket_num);
        }
-       /*
-        * Records which Mbuf pool to use by each logical core, if needed.
-        */
-       for (lc_id = 0; lc_id < nb_lcores; lc_id++) {
-               mbp = mbuf_pool_find(rte_lcore_to_socket_id(lc_id));
-               if (mbp == NULL)
-                       mbp = mbuf_pool_find(0);
-               fwd_lcores[lc_id]->mbp = mbp;
-       }

        /* Configuration of Ethernet ports. */
        ports = rte_zmalloc("testpmd: ports",
@@ -609,6 +600,17 @@ init_config(void)
                }
        }
        init_port_config();
+
+       /*
+        * Records which Mbuf pool to use by each logical core, if needed.
+        */
+       for (lc_id = 0; lc_id < nb_lcores; lc_id++) {
+               mbp = mbuf_pool_find(rte_lcore_to_socket_id(lc_id));
+               if (mbp == NULL)
+                       mbp = mbuf_pool_find(0);
+               fwd_lcores[lc_id]->mbp = mbp;
+       }
+
        /* Configuration of packet forwarding streams. */
        if (init_fwd_streams() < 0)
                rte_exit(EXIT_FAILURE, "FAIL from init_fwd_streams()\n");
-- 
1.7.10.4

Reply via email to