Skip to contentSkip to conversation

net/gve: Refill all descriptors that were consumed

PATCH Applied Rushil Gupta 3 participants 3 messages Sep 14, 2023 – Sep 21, 2023 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 net/gve: Refill all descriptors that were consumed

Refill all consumed descriptors instead of refilling a set amount of descriptors everytime. Also, lower the rx-free-thresh to refill more aggressively. This yields in fewer packet drops for DQO queue format.

---
 drivers/net/gve/gve_ethdev.h | 2 +-
 drivers/net/gve/gve_rx_dqo.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
drivers/net/gve/gve_ethdev.h +1 -1
index c9bcfa553c..fe7095ed76 100644
@@ -27,7 +27,7 @@
 #define PCI_MSIX_FLAGS		2	/* Message Control */
 #define PCI_MSIX_FLAGS_QSIZE	0x07FF	/* Table size */
 
-#define GVE_DEFAULT_RX_FREE_THRESH  512
+#define GVE_DEFAULT_RX_FREE_THRESH   64
 #define GVE_DEFAULT_TX_FREE_THRESH   32
 #define GVE_DEFAULT_TX_RS_THRESH     32
 #define GVE_TX_MAX_FREE_SZ          512
drivers/net/gve/gve_rx_dqo.c +2 -2
index 236aefd2a8..7e7ddac48e 100644
@@ -12,8 +12,8 @@ gve_rx_refill_dqo(struct gve_rx_queue *rxq)
 {
 	volatile struct gve_rx_desc_dqo *rx_buf_ring;
 	volatile struct gve_rx_desc_dqo *rx_buf_desc;
-	struct rte_mbuf *nmb[rxq->free_thresh];
-	uint16_t nb_refill = rxq->free_thresh;
+	struct rte_mbuf *nmb[rxq->nb_rx_hold];
+	uint16_t nb_refill = rxq->nb_rx_hold;
 	uint16_t nb_desc = rxq->nb_rx_desc;
 	uint16_t next_avail = rxq->bufq_tail;
 	struct rte_eth_dev *dev;
Signature · 1 line
2.42.0.459.ge4e396fd5e-goog
Acked-by on v1 1/1
#1 lore raw

Regards,
Junfeng

Quoted 49 lines

-----Original Message-----
From: Rushil Gupta <[email protected]>
Sent: Friday, September 15, 2023 04:52
To: Zhang, Qi Z <[email protected]>; [email protected]
Cc: Guo, Junfeng <[email protected]>; [email protected]; Rushil Gupta <[email protected]>; Joshua Washington <[email protected]>
Subject: [PATCH] net/gve: Refill all descriptors that were consumed

Refill all consumed descriptors instead of refilling a set amount of descriptors everytime. Also, lower the rx-free-thresh to refill more aggressively. This yields in fewer packet drops for DQO queue format.

---
 drivers/net/gve/gve_ethdev.h | 2 +-
 drivers/net/gve/gve_rx_dqo.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
drivers/net/gve/gve_ethdev.h +1 -1
index c9bcfa553c..fe7095ed76 100644
@@ -27,7 +27,7 @@
 #define PCI_MSIX_FLAGS		2	/* Message Control */
 #define PCI_MSIX_FLAGS_QSIZE	0x07FF	/* Table size */
 
-#define GVE_DEFAULT_RX_FREE_THRESH  512
+#define GVE_DEFAULT_RX_FREE_THRESH   64
 #define GVE_DEFAULT_TX_FREE_THRESH   32
 #define GVE_DEFAULT_TX_RS_THRESH     32
 #define GVE_TX_MAX_FREE_SZ          512
drivers/net/gve/gve_rx_dqo.c +2 -3
index 236aefd2a8..7e7ddac48e 100644
@@ -12,8 +12,8 @@ gve_rx_refill_dqo(struct gve_rx_queue *rxq)
 {
 	volatile struct gve_rx_desc_dqo *rx_buf_ring;
 	volatile struct gve_rx_desc_dqo *rx_buf_desc;
-	struct rte_mbuf *nmb[rxq->free_thresh];
-	uint16_t nb_refill = rxq->free_thresh;
+	struct rte_mbuf *nmb[rxq->nb_rx_hold];
+	uint16_t nb_refill = rxq->nb_rx_hold;
 	uint16_t nb_desc = rxq->nb_rx_desc;
 	uint16_t next_avail = rxq->bufq_tail;
 	struct rte_eth_dev *dev;
--

2.42.0.459.ge4e396fd5e-goog

Applied
#2 lore raw
Quoted 8 lines · Junfeng
Quoted 8 lines

-----Original Message-----
From: Rushil Gupta <[email protected]>
Sent: Friday, September 15, 2023 04:52
To: Zhang, Qi Z <[email protected]>; [email protected]
Cc: Guo, Junfeng <[email protected]>; [email protected]; Rushil Gupta <[email protected]>; Joshua Washington <[email protected]>
Subject: [PATCH] net/gve: Refill all descriptors that were consumed

Quoted 9 lines
Quoted 6 lines

Refill all consumed descriptors instead of refilling a set amount of descriptors everytime. Also, lower the rx-free-thresh to refill more aggressively. This yields in fewer packet drops for DQO queue format.

Applied to dpdk-next-net/main, thanks.