[dpdk-stable] patch 'net/bnx2x: fix supported max Rx/Tx descriptor count' has been queued to LTS release 18.11.3
Kevin Traynor
ktraynor at redhat.com
Mon Jun 24 17:24:48 CEST 2019
Hi,
FYI, your patch has been queued to LTS release 18.11.3
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/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.
Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue
This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/539aba06f66109a67576a280c559cce46f5a3e38
Thanks.
Kevin Traynor
---
>From 539aba06f66109a67576a280c559cce46f5a3e38 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shshaikh at marvell.com>
Date: Tue, 4 Jun 2019 11:53:52 -0700
Subject: [PATCH] net/bnx2x: fix supported max Rx/Tx descriptor count
[ upstream commit 65a45ecc76bbca1c167bd034d85827666084d83a ]
Driver does not provide limit on number Rx and Tx descriptors per queue,
this may result in application configuring 64k descriptors (default set
by rte_eth_dev_info_get()) and further result in issues in PMD and HW
flows due to unsupported number.
Fixes: 540a211084a7 ("bnx2x: driver core")
Signed-off-by: Shahed Shaikh <shshaikh at marvell.com>
Acked-by: Rasesh Mody <rmody at marvell.com>
---
drivers/net/bnx2x/bnx2x.h | 10 ++++++++--
drivers/net/bnx2x/bnx2x_ethdev.c | 5 +++++
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x.h b/drivers/net/bnx2x/bnx2x.h
index ef1688ff3..ceaecb031 100644
--- a/drivers/net/bnx2x/bnx2x.h
+++ b/drivers/net/bnx2x/bnx2x.h
@@ -156,4 +156,5 @@ struct bnx2x_device_type {
*/
/* NUM_TX_PAGES must be a power of 2. */
+#define NUM_TX_PAGES 16
#define TOTAL_TX_BD_PER_PAGE (BNX2X_PAGE_SIZE / sizeof(union eth_tx_bd_types)) /* 256 */
#define USABLE_TX_BD_PER_PAGE (TOTAL_TX_BD_PER_PAGE - 1) /* 255 */
@@ -162,5 +163,5 @@ struct bnx2x_device_type {
#define USABLE_TX_BD(q) (USABLE_TX_BD_PER_PAGE * q->nb_tx_pages) /* 510 */
#define MAX_TX_BD(q) (TOTAL_TX_BD(q) - 1) /* 511 */
-
+#define MAX_TX_AVAIL (USABLE_TX_BD_PER_PAGE * NUM_TX_PAGES - 2)
#define NEXT_TX_BD(x) \
((((x) & USABLE_TX_BD_PER_PAGE) == \
@@ -183,5 +184,5 @@ struct bnx2x_device_type {
* Receive Buffer Descriptor (rx_bd) definitions*
*/
-//#define NUM_RX_PAGES 1
+#define MAX_RX_PAGES 8
#define TOTAL_RX_BD_PER_PAGE (BNX2X_PAGE_SIZE / sizeof(struct eth_rx_bd)) /* 512 */
#define USABLE_RX_BD_PER_PAGE (TOTAL_RX_BD_PER_PAGE - 2) /* 510 */
@@ -190,4 +191,5 @@ struct bnx2x_device_type {
#define USABLE_RX_BD(q) (USABLE_RX_BD_PER_PAGE * q->nb_rx_pages) /* 510 */
#define MAX_RX_BD(q) (TOTAL_RX_BD(q) - 1) /* 511 */
+#define MAX_RX_AVAIL (USABLE_RX_BD_PER_PAGE * MAX_RX_PAGES - 2)
#define RX_BD_NEXT_PAGE_DESC_CNT 2
@@ -245,4 +247,8 @@ struct bnx2x_device_type {
((sc)->dropless_fc ? BD_TH_HI(sc) + 128 : 128)
+#define MIN_RX_SIZE_NONTPA_HW ETH_MIN_RX_CQES_WITHOUT_TPA
+#define MIN_RX_SIZE_NONTPA (RTE_MAX((uint32_t)MIN_RX_SIZE_NONTPA_HW,\
+ (uint32_t)MIN_RX_AVAIL(sc)))
+
/*
* dropless fc calculations for RCQs
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index 7c440d33e..fa9d83154 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -481,4 +481,5 @@ bnx2x_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
{
struct bnx2x_softc *sc = dev->data->dev_private;
+
dev_info->max_rx_queues = sc->max_rx_queues;
dev_info->max_tx_queues = sc->max_tx_queues;
@@ -488,4 +489,8 @@ bnx2x_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
dev_info->speed_capa = ETH_LINK_SPEED_10G | ETH_LINK_SPEED_20G;
dev_info->rx_offload_capa = DEV_RX_OFFLOAD_JUMBO_FRAME;
+
+ dev_info->rx_desc_lim.nb_max = MAX_RX_AVAIL;
+ dev_info->rx_desc_lim.nb_min = MIN_RX_SIZE_NONTPA;
+ dev_info->tx_desc_lim.nb_max = MAX_TX_AVAIL;
}
--
2.20.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2019-06-24 16:18:56.346393889 +0100
+++ 0024-net-bnx2x-fix-supported-max-Rx-Tx-descriptor-count.patch 2019-06-24 16:18:55.035431129 +0100
@@ -1 +1 @@
-From 65a45ecc76bbca1c167bd034d85827666084d83a Mon Sep 17 00:00:00 2001
+From 539aba06f66109a67576a280c559cce46f5a3e38 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 65a45ecc76bbca1c167bd034d85827666084d83a ]
+
@@ -12 +13,0 @@
-Cc: stable at dpdk.org
@@ -61 +62 @@
-index 7429004de..45c6c363c 100644
+index 7c440d33e..fa9d83154 100644
More information about the stable
mailing list