[dpdk-stable] patch 'net/ena: update completion queue after cleanup' has been queued to LTS release 18.11.1

Kevin Traynor ktraynor at redhat.com
Fri Jan 4 14:24:39 CET 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 01/11/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Kevin Traynor

---
>From 0ec66dbb578b3993dd4178d1416f72117b50b764 Mon Sep 17 00:00:00 2001
From: Rafal Kozik <rk at semihalf.com>
Date: Fri, 14 Dec 2018 14:18:44 +0100
Subject: [PATCH] net/ena: update completion queue after cleanup

[ upstream commit a45462c507e98b49cb5c2302e0be3c72d2e20a1a ]

After Rx or Tx cleanup update completion queue head by calling
ena_com_update_dev_comp_head().

Fixes: 1daff5260ff8 ("net/ena: use unmasked head and tail")

Signed-off-by: Rafal Kozik <rk at semihalf.com>
Acked-by: Michal Krawczyk <mk at semihalf.com>
---
 drivers/net/ena/ena_ethdev.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index 281addb4b..333615700 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -1958,6 +1958,8 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
 	desc_in_use = desc_in_use - completed + 1;
 	/* Burst refill to save doorbells, memory barriers, const interval */
-	if (ring_size - desc_in_use > ENA_RING_DESCS_RATIO(ring_size))
+	if (ring_size - desc_in_use > ENA_RING_DESCS_RATIO(ring_size)) {
+		ena_com_update_dev_comp_head(rx_ring->ena_com_io_cq);
 		ena_populate_rx_queue(rx_ring, ring_size - desc_in_use);
+	}
 
 	return recv_idx;
@@ -2209,6 +2211,7 @@ static uint16_t eth_ena_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 	if (total_tx_descs > 0) {
 		/* acknowledge completion of sent packets */
-		ena_com_comp_ack(tx_ring->ena_com_io_sq, total_tx_descs);
 		tx_ring->next_to_clean = next_to_clean;
+		ena_com_comp_ack(tx_ring->ena_com_io_sq, total_tx_descs);
+		ena_com_update_dev_comp_head(tx_ring->ena_com_io_cq);
 	}
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-01-04 13:23:08.836206501 +0000
+++ 0057-net-ena-update-completion-queue-after-cleanup.patch	2019-01-04 13:23:07.000000000 +0000
@@ -1,13 +1,14 @@
-From a45462c507e98b49cb5c2302e0be3c72d2e20a1a Mon Sep 17 00:00:00 2001
+From 0ec66dbb578b3993dd4178d1416f72117b50b764 Mon Sep 17 00:00:00 2001
 From: Rafal Kozik <rk at semihalf.com>
 Date: Fri, 14 Dec 2018 14:18:44 +0100
 Subject: [PATCH] net/ena: update completion queue after cleanup
 
+[ upstream commit a45462c507e98b49cb5c2302e0be3c72d2e20a1a ]
+
 After Rx or Tx cleanup update completion queue head by calling
 ena_com_update_dev_comp_head().
 
 Fixes: 1daff5260ff8 ("net/ena: use unmasked head and tail")
-Cc: stable at dpdk.org
 
 Signed-off-by: Rafal Kozik <rk at semihalf.com>
 Acked-by: Michal Krawczyk <mk at semihalf.com>
@@ -16,10 +17,10 @@
  1 file changed, 5 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
-index 0aeb85ff8..a2c8f1e4a 100644
+index 281addb4b..333615700 100644
 --- a/drivers/net/ena/ena_ethdev.c
 +++ b/drivers/net/ena/ena_ethdev.c
-@@ -2129,6 +2129,8 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+@@ -1958,6 +1958,8 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
  	desc_in_use = desc_in_use - completed + 1;
  	/* Burst refill to save doorbells, memory barriers, const interval */
 -	if (ring_size - desc_in_use > ENA_RING_DESCS_RATIO(ring_size))
@@ -29,7 +30,7 @@
 +	}
  
  	return recv_idx;
-@@ -2441,6 +2443,7 @@ static uint16_t eth_ena_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -2209,6 +2211,7 @@ static uint16_t eth_ena_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
  	if (total_tx_descs > 0) {
  		/* acknowledge completion of sent packets */
 -		ena_com_comp_ack(tx_ring->ena_com_io_sq, total_tx_descs);


More information about the stable mailing list