On Mon, Dec 14, 2020 at 10:56 AM Lance Richardson <lance.richard...@broadcom.com> wrote: > > Write completion queue doorbell before receive descriptor > doorbell to avoid possibility of completion queue overflow > when completion queue size is equal to receive descriptor > ring size. Remove unnecessary compiler barriers (db write > functions have the necessary barriers.) > > Fixes: 637e34befd9c ("net/bnxt: optimize Rx processing") > Signed-off-by: Lance Richardson <lance.richard...@broadcom.com> > Reviewed-by: Ajit Kumar Khaparde <ajit.khapa...@broadcom.com> > Reviewed-by: Somnath Kotur <somnath.ko...@broadcom.com> > Cc: sta...@dpdk.org
Patch applied to dpdk-next-net-brcm. > --- > v2 - Fixed typo in commit log. > > drivers/net/bnxt/bnxt_rxr.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c > index e2d388e69f..ffdeeecc3a 100644 > --- a/drivers/net/bnxt/bnxt_rxr.c > +++ b/drivers/net/bnxt/bnxt_rxr.c > @@ -917,17 +917,17 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf > **rx_pkts, > goto done; > } > > - rte_compiler_barrier(); > + /* Ring the completion queue doorbell. */ > + bnxt_db_cq(cpr); > + > + /* Ring the receive descriptor doorbell. */ > if (rx_raw_prod != rxr->rx_raw_prod) > bnxt_db_write(&rxr->rx_db, rxr->rx_raw_prod); > > - rte_compiler_barrier(); > /* Ring the AGG ring DB */ > if (ag_raw_prod != rxr->ag_raw_prod) > bnxt_db_write(&rxr->ag_db, rxr->ag_raw_prod); > > - bnxt_db_cq(cpr); > - > /* Attempt to alloc Rx buf in case of a previous allocation failure. > */ > if (rc == -ENOMEM) { > int i = RING_NEXT(rx_raw_prod); > -- > 2.25.1 > > > -- > This electronic communication and the information and any files transmitted > with it, or attached to it, are confidential and are intended solely for > the use of the individual or entity to whom it is addressed and may contain > information that is confidential, legally privileged, protected by privacy > laws, or otherwise restricted from disclosure to anyone else. If you are > not the intended recipient or the person responsible for delivering the > e-mail to the intended recipient, you are hereby notified that any use, > copying, distributing, dissemination, forwarding, printing, or copying of > this e-mail is strictly prohibited. If you received this e-mail in error, > please return the e-mail to the sender, delete it from your computer, and > destroy any printed copy of it. -- Ajit Khaparde