Hi, in this code, pointer of local variable (mb_def) is returned by your changes. mb_def should be static for each thread.
2014-10-22 19:55 GMT+09:00 Bruce Richardson <bruce.richardson at intel.com>: > Remove the "static" prefix to the template mbuf variable in > ixgbe_rxq_vec_setup function. This will then allow different > threads to initialize different RX queues at the same time, > without one overwriting the other's data. > > Signed-off-by: Bruce Richardson <bruce.richardson at intel.com> > --- > lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c > b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c > index a0d3d78..e813e43 100644 > --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c > +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c > @@ -730,7 +730,7 @@ static struct ixgbe_txq_ops vec_txq_ops = { > int > ixgbe_rxq_vec_setup(struct igb_rx_queue *rxq) > { > - static struct rte_mbuf mb_def = { > + struct rte_mbuf mb_def = { > .nb_segs = 1, > .data_off = RTE_PKTMBUF_HEADROOM, > #ifdef RTE_MBUF_REFCNT > -- > 1.9.3 >