We really don't need to hit the Rx queue doorbell so many times,
we can wait to the end and cause a little less thrash.

Signed-off-by: Shannon Nelson <snel...@pensando.io>
---
 drivers/net/ethernet/pensando/ionic/ionic_txrx.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/net/ethernet/pensando/ionic/ionic_txrx.c 
b/drivers/net/ethernet/pensando/ionic/ionic_txrx.c
index 85eb8f276a37..e660cd66f9a8 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_txrx.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_txrx.c
@@ -331,9 +331,6 @@ static void ionic_rx_page_free(struct ionic_queue *q, 
struct page *page,
        __free_page(page);
 }
 
-#define IONIC_RX_RING_DOORBELL_STRIDE          ((1 << 5) - 1)
-#define IONIC_RX_RING_HEAD_BUF_SZ              2048
-
 void ionic_rx_fill(struct ionic_queue *q)
 {
        struct net_device *netdev = q->lif->netdev;
@@ -345,7 +342,6 @@ void ionic_rx_fill(struct ionic_queue *q)
        unsigned int remain_len;
        unsigned int seg_len;
        unsigned int nfrags;
-       bool ring_doorbell;
        unsigned int i, j;
        unsigned int len;
 
@@ -360,9 +356,7 @@ void ionic_rx_fill(struct ionic_queue *q)
                page_info = &desc_info->pages[0];
 
                if (page_info->page) { /* recycle the buffer */
-                       ring_doorbell = ((q->head->index + 1) &
-                                       IONIC_RX_RING_DOORBELL_STRIDE) == 0;
-                       ionic_rxq_post(q, ring_doorbell, ionic_rx_clean, NULL);
+                       ionic_rxq_post(q, false, ionic_rx_clean, NULL);
                        continue;
                }
 
@@ -401,10 +395,11 @@ void ionic_rx_fill(struct ionic_queue *q)
                        page_info++;
                }
 
-               ring_doorbell = ((q->head->index + 1) &
-                               IONIC_RX_RING_DOORBELL_STRIDE) == 0;
-               ionic_rxq_post(q, ring_doorbell, ionic_rx_clean, NULL);
+               ionic_rxq_post(q, false, ionic_rx_clean, NULL);
        }
+
+       ionic_dbell_ring(q->lif->kern_dbpage, q->hw_type,
+                        q->dbval | q->head->index);
 }
 
 static void ionic_rx_fill_cb(void *arg)
-- 
2.17.1

Reply via email to