DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH 0/3] net/ena: ena release 2.11.0
@ 2024-10-23  9:41 shaibran
  2024-10-23  9:41 ` [PATCH 1/3] net/ena: upgrade driver version to 2.11.0 shaibran
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: shaibran @ 2024-10-23  9:41 UTC (permalink / raw)
  To: ferruh.yigit; +Cc: dev, Shai Brandes

From: Shai Brandes <shaibran@amazon.com>

Dear all,
Please find attached the patches for our upcoming release.
We welcome and appreciate any feedback you may have.
Thank you in advance.
Best regards,
Shai Brandes

Shai Brandes (3):
  net/ena: upgrade driver version to 2.11.0
  net/ena: support malformed Rx descriptor error
  net/ena: remove outdated devarg documentation

 doc/guides/nics/ena.rst                |  4 ----
 doc/guides/rel_notes/release_24_11.rst |  1 +
 drivers/net/ena/ena_ethdev.c           | 31 +++++++++++++++++++-------
 drivers/net/ena/ena_ethdev.h           |  2 ++
 4 files changed, 26 insertions(+), 12 deletions(-)

-- 
2.17.1


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

* [PATCH 1/3] net/ena: upgrade driver version to 2.11.0
  2024-10-23  9:41 [PATCH 0/3] net/ena: ena release 2.11.0 shaibran
@ 2024-10-23  9:41 ` shaibran
  2024-10-23  9:41 ` [PATCH 2/3] net/ena: support malformed Rx descriptor error shaibran
  2024-10-23  9:41 ` [PATCH 3/3] net/ena: remove outdated devarg documentation shaibran
  2 siblings, 0 replies; 4+ messages in thread
From: shaibran @ 2024-10-23  9:41 UTC (permalink / raw)
  To: ferruh.yigit; +Cc: dev, Shai Brandes

From: Shai Brandes <shaibran@amazon.com>

Upgrade ENA driver version to 2.11.0.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
---
 drivers/net/ena/ena_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index 1dec54fb58..1a652b09ac 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -22,7 +22,7 @@
 #include <ena_eth_io_defs.h>
 
 #define DRV_MODULE_VER_MAJOR	2
-#define DRV_MODULE_VER_MINOR	10
+#define DRV_MODULE_VER_MINOR	11
 #define DRV_MODULE_VER_SUBMINOR	0
 
 #define __MERGE_64B_H_L(h, l) (((uint64_t)h << 32) | l)
-- 
2.17.1


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

* [PATCH 2/3] net/ena: support malformed Rx descriptor error
  2024-10-23  9:41 [PATCH 0/3] net/ena: ena release 2.11.0 shaibran
  2024-10-23  9:41 ` [PATCH 1/3] net/ena: upgrade driver version to 2.11.0 shaibran
@ 2024-10-23  9:41 ` shaibran
  2024-10-23  9:41 ` [PATCH 3/3] net/ena: remove outdated devarg documentation shaibran
  2 siblings, 0 replies; 4+ messages in thread
From: shaibran @ 2024-10-23  9:41 UTC (permalink / raw)
  To: ferruh.yigit; +Cc: dev, Shai Brandes

From: Shai Brandes <shaibran@amazon.com>

Add validation check for packet descriptor consistency
and improve reset logic and stats tracking.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
Reviewed-by: Amit Bernstein <amitbern@amazon.com>
---
 doc/guides/rel_notes/release_24_11.rst |  1 +
 drivers/net/ena/ena_ethdev.c           | 29 +++++++++++++++++++-------
 drivers/net/ena/ena_ethdev.h           |  2 ++
 3 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/doc/guides/rel_notes/release_24_11.rst b/doc/guides/rel_notes/release_24_11.rst
index fa4822d928..e94564b8b7 100644
--- a/doc/guides/rel_notes/release_24_11.rst
+++ b/doc/guides/rel_notes/release_24_11.rst
@@ -142,6 +142,7 @@ New Features
   * Modified the PMD API that controls the LLQ header policy.
   * Replaced ``enable_llq``, ``normal_llq_hdr`` and ``large_llq_hdr`` devargs
     with a new shared devarg ``llq_policy`` that keeps the same logic.
+  * Added validation check for Rx packet descriptor consistency.
 
 * **Updated Cisco enic driver.**
 
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index 1a652b09ac..bba48ea1cc 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -162,6 +162,8 @@ static const struct ena_stats ena_stats_rx_strings[] = {
 	ENA_STAT_RX_ENTRY(mbuf_alloc_fail),
 	ENA_STAT_RX_ENTRY(bad_desc_num),
 	ENA_STAT_RX_ENTRY(bad_req_id),
+	ENA_STAT_RX_ENTRY(bad_desc),
+	ENA_STAT_RX_ENTRY(unknown_error),
 };
 
 #define ENA_STATS_ARRAY_GLOBAL	ARRAY_SIZE(ena_stats_global_strings)
@@ -1262,7 +1264,9 @@ static int ena_stats_get(struct rte_eth_dev *dev,
 		stats->q_ibytes[i] = rx_stats->bytes;
 		stats->q_ipackets[i] = rx_stats->cnt;
 		stats->q_errors[i] = rx_stats->bad_desc_num +
-			rx_stats->bad_req_id;
+			rx_stats->bad_req_id +
+			rx_stats->bad_desc +
+			rx_stats->unknown_error;
 	}
 
 	max_rings_stats = RTE_MIN(dev->data->nb_tx_queues,
@@ -2772,6 +2776,7 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
 	struct ena_ring *rx_ring = (struct ena_ring *)(rx_queue);
 	unsigned int free_queue_entries;
 	uint16_t next_to_clean = rx_ring->next_to_clean;
+	enum ena_regs_reset_reason_types reset_reason;
 	uint16_t descs_in_use;
 	struct rte_mbuf *mbuf;
 	uint16_t completed;
@@ -2804,15 +2809,25 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
 			PMD_RX_LOG_LINE(ERR,
 				"Failed to get the packet from the device, rc: %d",
 				rc);
-			if (rc == ENA_COM_NO_SPACE) {
+			switch (rc) {
+			case ENA_COM_NO_SPACE:
 				++rx_ring->rx_stats.bad_desc_num;
-				ena_trigger_reset(rx_ring->adapter,
-					ENA_REGS_RESET_TOO_MANY_RX_DESCS);
-			} else {
+				reset_reason = ENA_REGS_RESET_TOO_MANY_RX_DESCS;
+				break;
+			case ENA_COM_FAULT:
+				++rx_ring->rx_stats.bad_desc;
+				reset_reason = ENA_REGS_RESET_RX_DESCRIPTOR_MALFORMED;
+				break;
+			case ENA_COM_EIO:
 				++rx_ring->rx_stats.bad_req_id;
-				ena_trigger_reset(rx_ring->adapter,
-					ENA_REGS_RESET_INV_RX_REQ_ID);
+				reset_reason = ENA_REGS_RESET_INV_RX_REQ_ID;
+				break;
+			default:
+				++rx_ring->rx_stats.unknown_error;
+				reset_reason = ENA_REGS_RESET_DRIVER_INVALID_STATE;
+				break;
 			}
+			ena_trigger_reset(rx_ring->adapter, reset_reason);
 			return 0;
 		}
 
diff --git a/drivers/net/ena/ena_ethdev.h b/drivers/net/ena/ena_ethdev.h
index fe7d4a2d65..b8aead8f46 100644
--- a/drivers/net/ena/ena_ethdev.h
+++ b/drivers/net/ena/ena_ethdev.h
@@ -140,6 +140,8 @@ struct ena_stats_rx {
 	u64 mbuf_alloc_fail;
 	u64 bad_desc_num;
 	u64 bad_req_id;
+	u64 bad_desc;
+	u64 unknown_error;
 };
 
 struct __rte_cache_aligned ena_ring {
-- 
2.17.1


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

* [PATCH 3/3] net/ena: remove outdated devarg documentation
  2024-10-23  9:41 [PATCH 0/3] net/ena: ena release 2.11.0 shaibran
  2024-10-23  9:41 ` [PATCH 1/3] net/ena: upgrade driver version to 2.11.0 shaibran
  2024-10-23  9:41 ` [PATCH 2/3] net/ena: support malformed Rx descriptor error shaibran
@ 2024-10-23  9:41 ` shaibran
  2 siblings, 0 replies; 4+ messages in thread
From: shaibran @ 2024-10-23  9:41 UTC (permalink / raw)
  To: ferruh.yigit; +Cc: dev, Shai Brandes

From: Shai Brandes <shaibran@amazon.com>

Removed obsolete devarg enforcing normal llq policy,
as its logic is now handled by the new `llq_policy` devarg.

Signed-off-by: Shai Brandes <shaibran@amazon.com>
---
 doc/guides/nics/ena.rst | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/doc/guides/nics/ena.rst b/doc/guides/nics/ena.rst
index a40f09be09..a34575dc9b 100644
--- a/doc/guides/nics/ena.rst
+++ b/doc/guides/nics/ena.rst
@@ -120,10 +120,6 @@ Runtime Configuration
 
      3 - Enforce large LLQ policy.
 
-   * **normal_llq_hdr** (default 0)
-
-     Enforce normal LLQ policy.
-
    * **miss_txc_to** (default 5)
 
      Number of seconds after which the Tx packet will be considered missing.
-- 
2.17.1


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

end of thread, other threads:[~2024-10-23  9:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-23  9:41 [PATCH 0/3] net/ena: ena release 2.11.0 shaibran
2024-10-23  9:41 ` [PATCH 1/3] net/ena: upgrade driver version to 2.11.0 shaibran
2024-10-23  9:41 ` [PATCH 2/3] net/ena: support malformed Rx descriptor error shaibran
2024-10-23  9:41 ` [PATCH 3/3] net/ena: remove outdated devarg documentation shaibran

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).