> -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Chengwen Feng > Sent: Monday, May 10, 2021 15:06 > To: NBU-Contact-Thomas Monjalon <tho...@monjalon.net>; > ferruh.yi...@intel.com > Cc: dev@dpdk.org > Subject: [dpdk-dev] [PATCH 1/2] net/mlx4: fix memory barrier incorrectly > placed > > The memory barrier is used to ensure that the response is returned only > after the Tx/Rx function is set, it should place after the Rx/Tx function is > set. > > Fixes: 0203d33a1059 ("net/mlx4: support secondary process") > Cc: sta...@dpdk.org > > Signed-off-by: Chengwen Feng <fengcheng...@huawei.com> Acked-by: Viacheslav Ovsiienko <viachesl...@nvidia.com>
Hi, Chengwen Nice catch, thank you for the patches. Just out of curiosity - did we meet the real issue with this ineffective barrier? With best regards, Slava > --- > drivers/net/mlx4/mlx4_mp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/mlx4/mlx4_mp.c b/drivers/net/mlx4/mlx4_mp.c > index ddf7bdb..8fcfb54 100644 > --- a/drivers/net/mlx4/mlx4_mp.c > +++ b/drivers/net/mlx4/mlx4_mp.c > @@ -126,7 +126,6 @@ mp_secondary_handle(const struct rte_mp_msg > *mp_msg, const void *peer) > switch (param->type) { > case MLX4_MP_REQ_START_RXTX: > INFO("port %u starting datapath", dev->data->port_id); > - rte_mb(); > dev->tx_pkt_burst = mlx4_tx_burst; > dev->rx_pkt_burst = mlx4_rx_burst; > #ifdef HAVE_IBV_MLX4_UAR_MMAP_OFFSET > @@ -144,6 +143,7 @@ mp_secondary_handle(const struct rte_mp_msg > *mp_msg, const void *peer) > } > } > #endif > + rte_mb(); > mp_init_msg(dev, &mp_res, param->type); > res->result = 0; > ret = rte_mp_reply(&mp_res, peer); > -- > 2.8.1