[dpdk-dev] [PATCH 2/2] ixgbe: add memory barriers in vector rx/tx

Ananyev, Konstantin konstantin.ananyev at intel.com
Mon Jun 29 13:28:42 CEST 2015


Hi Eric,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Eric Kinzie
> Sent: Thursday, June 25, 2015 7:26 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH 2/2] ixgbe: add memory barriers in vector rx/tx
> 
> Add write memory barrier before writing tail pointer.
> 
> Fixes c95584dc2b18 ("ixgbe: new vectorized functions for Rx/Tx")
> 
> Signed-off-by: Eric Kinzie <ehkinzie at gmail.com>
> ---
>  drivers/net/ixgbe/ixgbe_rxtx_vec.c |    3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> index abd10f6..b601de8 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
> @@ -123,6 +123,7 @@ ixgbe_rxq_rearm(struct ixgbe_rx_queue *rxq)
>  			     (rxq->nb_rx_desc - 1) : (rxq->rxrearm_start - 1));
> 
>  	/* Update the tail pointer on the NIC */
> +	rte_wmb();
>  	IXGBE_PCI_REG_WRITE(rxq->rdt_reg_addr, rx_id);
>  }
> 
> @@ -645,6 +646,8 @@ ixgbe_xmit_pkts_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
> 
>  	txq->tx_tail = tx_id;
> 
> +	/* update tail pointer */
> +	rte_wmb();
>  	IXGBE_PCI_REG_WRITE(txq->tdt_reg_addr, txq->tx_tail);
> 
>  	return nb_pkts;


There were several discussions about that subject already:
why fence is not necessary here for IA and why we don't want to put it here:
That I suppose was the last one:
http://dpdk.org/ml/archives/dev/2015-April/016463.html
As I can see, Dong already submitted patches for  that:
http://dpdk.org/dev/patchwork/patch/5884/ 
Though I didn't look at it closely yet.
Konstantin


> --
> 1.7.10.4



More information about the dev mailing list