On Wed, Jan 04, 2017 at 09:53:40PM +0800, Tiwei Bie wrote: > On Tue, Dec 27, 2016 at 03:19:29PM +0530, Jerin Jacob wrote: > > From: Santosh Shukla <santosh.shu...@caviumnetworks.com> > > /* Update the tx tail register */ > > rte_wmb(); > > - I40E_PCI_REG_WRITE(txq->qtx_tail, txq->tx_tail); > > + I40E_PCI_REG_WRITE_RELAXED(txq->qtx_tail, txq->tx_tail); > > > > return nb_pkts; > > } > > Besides i40e_xmit_pkts() and tx_xmit_pkts(), i40e_rx_alloc_bufs() which is > called by rx_recv_pkts() is also in the fast path. So I40E_PCI_REG_WRITE() > called by it should also be replaced by the relaxed version: > > diff --git i/drivers/net/i40e/i40e_rxtx.c w/drivers/net/i40e/i40e_rxtx.c > index 7ae7d9f..55a707a 100644 > --- i/drivers/net/i40e/i40e_rxtx.c > +++ w/drivers/net/i40e/i40e_rxtx.c > @@ -581,7 +581,7 @@ i40e_rx_alloc_bufs(struct i40e_rx_queue *rxq) > > /* Update rx tail regsiter */ > rte_wmb(); > - I40E_PCI_REG_WRITE(rxq->qrx_tail, rxq->rx_free_trigger); > + I40E_PCI_REG_WRITE_RELAXED(rxq->qrx_tail, rxq->rx_free_trigger); > > rxq->rx_free_trigger = > (uint16_t)(rxq->rx_free_trigger + rxq->rx_free_thresh); >
Yes. Will queue it in v3. > > -- > > 2.5.5 > >