DPDK patches and discussions
 help / color / mirror / Atom feed
* Re: [PATCH v4] net/gve : Update EOP & csum bit in txd rte_mbuf chain
@ 2024-08-01 22:38 Joshua Washington
  0 siblings, 0 replies; 2+ messages in thread
From: Joshua Washington @ 2024-08-01 22:38 UTC (permalink / raw)
  To: Tathagat Priyadarshi; +Cc: dev, dpdk stable, Varun Lakkur Ambaji Rao

Acked-by: Joshua Washington <joshwash@google.com>

Thanks!

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH v4] net/gve : Update EOP & csum bit in txd rte_mbuf chain
  2024-07-31 16:38 [PATCH] net/gve : Update EOP " Tathagat Priyadarshi
@ 2024-08-01 17:48 ` Tathagat Priyadarshi
  0 siblings, 0 replies; 2+ messages in thread
From: Tathagat Priyadarshi @ 2024-08-01 17:48 UTC (permalink / raw)
  To: dev; +Cc: Tathagat Priyadarshi, stable, Varun Lakkur Ambaji Rao

The EOP and csum bit was not set for all the packets in mbuf chain
causing packet transmission stalls for packets split across
mbuf in chain.

Fixes: 4022f99 ("net/gve: support basic Tx data path for DQO")
Cc: stable@dpdk.org

Signed-off-by: Tathagat Priyadarshi <tathagat.dpdk@gmail.com>
Signed-off-by: Varun Lakkur Ambaji Rao <varun.la@gmail.com>
---
 drivers/net/gve/gve_tx_dqo.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/net/gve/gve_tx_dqo.c b/drivers/net/gve/gve_tx_dqo.c
index a65e6aa..1374e1a 100644
--- a/drivers/net/gve/gve_tx_dqo.c
+++ b/drivers/net/gve/gve_tx_dqo.c
@@ -89,6 +89,7 @@
 	uint16_t sw_id;
 	uint64_t bytes;
 	uint16_t first_sw_id;
+	uint8_t csum;
 
 	sw_ring = txq->sw_ring;
 	txr = txq->tx_ring;
@@ -114,6 +115,12 @@
 		ol_flags = tx_pkt->ol_flags;
 		nb_used = tx_pkt->nb_segs;
 		first_sw_id = sw_id;
+
+		if (ol_flags & GVE_TX_CKSUM_OFFLOAD_MASK_DQO)
+			csum = 1;
+		else
+			csum = 0;
+
 		do {
 			if (sw_ring[sw_id] != NULL)
 				PMD_DRV_LOG(DEBUG, "Overwriting an entry in sw_ring");
@@ -126,6 +133,8 @@
 			txd->pkt.dtype = GVE_TX_PKT_DESC_DTYPE_DQO;
 			txd->pkt.compl_tag = rte_cpu_to_le_16(first_sw_id);
 			txd->pkt.buf_size = RTE_MIN(tx_pkt->data_len, GVE_TX_MAX_BUF_SIZE_DQO);
+			txd->pkt.end_of_packet = 0;
+			txd->pkt.checksum_offload_enable = csum;
 
 			/* size of desc_ring and sw_ring could be different */
 			tx_id = (tx_id + 1) & mask;
@@ -138,9 +147,6 @@
 		/* fill the last descriptor with End of Packet (EOP) bit */
 		txd->pkt.end_of_packet = 1;
 
-		if (ol_flags & GVE_TX_CKSUM_OFFLOAD_MASK_DQO)
-			txd->pkt.checksum_offload_enable = 1;
-
 		txq->nb_free -= nb_used;
 		txq->nb_used += nb_used;
 	}
-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-08-01 22:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-08-01 22:38 [PATCH v4] net/gve : Update EOP & csum bit in txd rte_mbuf chain Joshua Washington
  -- strict thread matches above, loose matches on Subject: below --
2024-07-31 16:38 [PATCH] net/gve : Update EOP " Tathagat Priyadarshi
2024-08-01 17:48 ` [PATCH v4] net/gve : Update EOP & csum " Tathagat Priyadarshi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).