patches for DPDK stable branches
 help / color / mirror / Atom feed
* [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722"
@ 2022-12-13 18:47 Kevin Traynor
  2022-12-13 18:47 ` [PATCH 21.11 2/3] Revert "net/i40e: fix max frame size config at port level" Kevin Traynor
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Kevin Traynor @ 2022-12-13 18:47 UTC (permalink / raw)
  To: stable
  Cc: bluca, david.marchand, john.mcnamara, qi.z.zhang, yux.jiang,
	beilei.xing, Yuying.Zhang, wenxuanx.wu, jie1x.wang, dapengx.yu,
	Kevin Traynor

This reverts commit 46abe3043e56f4905972ad87f1bfb15f4c1bc4a2.

This chain of commits has been found to cause issues with setting
max frame size when the link is not negotiated in 1s or the link
is down. The frame size is not set and no error is returned to
the user.

Revert the chain until a fix is found.

Link to original upstream commit and discussion:
719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
https://mails.dpdk.org/archives/dev/2022-December/257566.html

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
---
 drivers/net/i40e/i40e_ethdev.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index ecef1a6e7e..bad27355fc 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -12115,11 +12115,6 @@ i40e_set_mac_max_frame(struct rte_eth_dev *dev, uint16_t size)
 	bool can_be_set = true;
 
-	/*
-	 * I40E_MEDIA_TYPE_BASET link up can be ignored
-	 * I40E_MEDIA_TYPE_BASET link down that hw->phy.media_type
-	 * is I40E_MEDIA_TYPE_UNKNOWN
-	 */
-	if (hw->phy.media_type != I40E_MEDIA_TYPE_BASET &&
-	    hw->phy.media_type != I40E_MEDIA_TYPE_UNKNOWN) {
+	/* I40E_MEDIA_TYPE_BASET link up can be ignored */
+	if (hw->phy.media_type != I40E_MEDIA_TYPE_BASET) {
 		do {
 			update_link_reg(hw, &link);
-- 
2.38.1


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

* [PATCH 21.11 2/3] Revert "net/i40e: fix max frame size config at port level"
  2022-12-13 18:47 [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722" Kevin Traynor
@ 2022-12-13 18:47 ` Kevin Traynor
  2022-12-13 18:47 ` [PATCH 21.11 3/3] Revert "net/i40e: enable maximum frame size " Kevin Traynor
  2022-12-14 10:19 ` [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722" David Marchand
  2 siblings, 0 replies; 5+ messages in thread
From: Kevin Traynor @ 2022-12-13 18:47 UTC (permalink / raw)
  To: stable
  Cc: bluca, david.marchand, john.mcnamara, qi.z.zhang, yux.jiang,
	beilei.xing, Yuying.Zhang, wenxuanx.wu, jie1x.wang, dapengx.yu,
	Kevin Traynor

This reverts commit 67309512051829f552bc105ac63f48029629e238.

This chain of commits has been found to cause issues with setting
max frame size when the link is not negotiated in 1s or the link
is down. The frame size is not set and no error is returned to
the user.

Revert the chain until a fix is found.

Link to original upstream commit and discussion:
2184f7cdeeaa ("net/i40e: fix max frame size config at port level")
https://mails.dpdk.org/archives/dev/2022-December/257566.html

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
---
 drivers/net/i40e/i40e_ethdev.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index bad27355fc..4ac31c2fec 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -12113,18 +12113,14 @@ i40e_set_mac_max_frame(struct rte_eth_dev *dev, uint16_t size)
 	struct rte_eth_link link;
 	enum i40e_status_code status;
-	bool can_be_set = true;
 
-	/* I40E_MEDIA_TYPE_BASET link up can be ignored */
-	if (hw->phy.media_type != I40E_MEDIA_TYPE_BASET) {
-		do {
-			update_link_reg(hw, &link);
-			if (link.link_status)
-				break;
-			rte_delay_ms(CHECK_INTERVAL);
-		} while (--rep_cnt);
-		can_be_set = !!link.link_status;
-	}
+	do {
+		update_link_reg(hw, &link);
+		if (link.link_status)
+			break;
 
-	if (can_be_set) {
+		rte_delay_ms(CHECK_INTERVAL);
+	} while (--rep_cnt);
+
+	if (link.link_status) {
 		status = i40e_aq_set_mac_config(hw, size, TRUE, 0, false, NULL);
 		if (status != I40E_SUCCESS)
-- 
2.38.1


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

* [PATCH 21.11 3/3] Revert "net/i40e: enable maximum frame size at port level"
  2022-12-13 18:47 [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722" Kevin Traynor
  2022-12-13 18:47 ` [PATCH 21.11 2/3] Revert "net/i40e: fix max frame size config at port level" Kevin Traynor
@ 2022-12-13 18:47 ` Kevin Traynor
  2022-12-14 10:19 ` [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722" David Marchand
  2 siblings, 0 replies; 5+ messages in thread
From: Kevin Traynor @ 2022-12-13 18:47 UTC (permalink / raw)
  To: stable
  Cc: bluca, david.marchand, john.mcnamara, qi.z.zhang, yux.jiang,
	beilei.xing, Yuying.Zhang, wenxuanx.wu, jie1x.wang, dapengx.yu,
	Kevin Traynor

This reverts commit e68285796ca68b34fb0f7a10a391957e825b1a04.

This chain of commits has been found to cause issues with setting
max frame size when the link is not negotiated in 1s or the link
is down. The frame size is not set and no error is returned to
the user.

Revert the chain until a fix is found.

Link to original upstream commit and discussion:
a4ba77367923 ("net/i40e: enable maximum frame size at port level")
https://mails.dpdk.org/archives/dev/2022-December/257566.html

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
---
 drivers/net/i40e/i40e_ethdev.c | 41 ++++++----------------------------
 1 file changed, 7 insertions(+), 34 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 4ac31c2fec..1d417dbf8a 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -387,5 +387,4 @@ static int i40e_set_default_mac_addr(struct rte_eth_dev *dev,
 
 static int i40e_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu);
-static void i40e_set_mac_max_frame(struct rte_eth_dev *dev, uint16_t size);
 
 static int i40e_ethertype_filter_convert(
@@ -1711,4 +1710,9 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused)
 	i40e_add_tx_flow_control_drop_filter(pf);
 
+	/* Set the max frame size to 0x2600 by default,
+	 * in case other drivers changed the default value.
+	 */
+	i40e_aq_set_mac_config(hw, I40E_FRAME_SIZE_MAX, TRUE, false, 0, NULL);
+
 	/* initialize RSS rule list */
 	TAILQ_INIT(&pf->rss_config_list);
@@ -2361,5 +2365,4 @@ i40e_dev_start(struct rte_eth_dev *dev)
 	struct i40e_vsi *vsi;
 	uint16_t nb_rxq, nb_txq;
-	uint16_t max_frame_size;
 
 	hw->adapter_stopped = 0;
@@ -2500,7 +2503,4 @@ i40e_dev_start(struct rte_eth_dev *dev)
 			    "before starting the port");
 
-	max_frame_size = dev->data->mtu + I40E_ETH_OVERHEAD;
-	i40e_set_mac_max_frame(dev, max_frame_size);
-
 	return I40E_SUCCESS;
 
@@ -2849,7 +2849,4 @@ i40e_dev_set_link_down(struct rte_eth_dev *dev)
 }
 
-#define CHECK_INTERVAL             100  /* 100ms */
-#define MAX_REPEAT_TIME            10  /* 1s (10 * 100ms) in total */
-
 static __rte_always_inline void
 update_link_reg(struct i40e_hw *hw, struct rte_eth_link *link)
@@ -2918,4 +2915,6 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link,
 	bool enable_lse, int wait_to_complete)
 {
+#define CHECK_INTERVAL             100  /* 100ms */
+#define MAX_REPEAT_TIME            10  /* 1s (10 * 100ms) in total */
 	uint32_t rep_cnt = MAX_REPEAT_TIME;
 	struct i40e_link_status link_status;
@@ -6721,5 +6720,4 @@ i40e_dev_handle_aq_msg(struct rte_eth_dev *dev)
 				rte_eth_dev_callback_process(dev,
 					RTE_ETH_EVENT_INTR_LSC, NULL);
-
 			break;
 		default:
@@ -12106,29 +12104,4 @@ i40e_cloud_filter_qinq_create(struct i40e_pf *pf)
 }
 
-static void
-i40e_set_mac_max_frame(struct rte_eth_dev *dev, uint16_t size)
-{
-	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	uint32_t rep_cnt = MAX_REPEAT_TIME;
-	struct rte_eth_link link;
-	enum i40e_status_code status;
-
-	do {
-		update_link_reg(hw, &link);
-		if (link.link_status)
-			break;
-
-		rte_delay_ms(CHECK_INTERVAL);
-	} while (--rep_cnt);
-
-	if (link.link_status) {
-		status = i40e_aq_set_mac_config(hw, size, TRUE, 0, false, NULL);
-		if (status != I40E_SUCCESS)
-			PMD_DRV_LOG(ERR, "Failed to set max frame size at port level");
-	} else {
-		PMD_DRV_LOG(ERR, "Set max frame size at port level not applicable on link down");
-	}
-}
-
 RTE_LOG_REGISTER_SUFFIX(i40e_logtype_init, init, NOTICE);
 RTE_LOG_REGISTER_SUFFIX(i40e_logtype_driver, driver, NOTICE);
-- 
2.38.1


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

* Re: [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722"
  2022-12-13 18:47 [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722" Kevin Traynor
  2022-12-13 18:47 ` [PATCH 21.11 2/3] Revert "net/i40e: fix max frame size config at port level" Kevin Traynor
  2022-12-13 18:47 ` [PATCH 21.11 3/3] Revert "net/i40e: enable maximum frame size " Kevin Traynor
@ 2022-12-14 10:19 ` David Marchand
  2022-12-19 10:20   ` Kevin Traynor
  2 siblings, 1 reply; 5+ messages in thread
From: David Marchand @ 2022-12-14 10:19 UTC (permalink / raw)
  To: Kevin Traynor
  Cc: stable, bluca, john.mcnamara, qi.z.zhang, yux.jiang, beilei.xing,
	Yuying.Zhang, wenxuanx.wu, jie1x.wang, dapengx.yu

On Tue, Dec 13, 2022 at 7:48 PM Kevin Traynor <ktraynor@redhat.com> wrote:
>
> This reverts commit 46abe3043e56f4905972ad87f1bfb15f4c1bc4a2.
>
> This chain of commits has been found to cause issues with setting
> max frame size when the link is not negotiated in 1s or the link
> is down. The frame size is not set and no error is returned to
> the user.
>
> Revert the chain until a fix is found.
>
> Link to original upstream commit and discussion:
> 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
> https://mails.dpdk.org/archives/dev/2022-December/257566.html
>
> Reported-by: David Marchand <david.marchand@redhat.com>
> Signed-off-by: Kevin Traynor <ktraynor@redhat.com>

For the series,
Acked-by: David Marchand <david.marchand@redhat.com>


-- 
David Marchand


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

* Re: [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722"
  2022-12-14 10:19 ` [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722" David Marchand
@ 2022-12-19 10:20   ` Kevin Traynor
  0 siblings, 0 replies; 5+ messages in thread
From: Kevin Traynor @ 2022-12-19 10:20 UTC (permalink / raw)
  To: David Marchand
  Cc: stable, bluca, john.mcnamara, qi.z.zhang, yux.jiang, beilei.xing,
	Yuying.Zhang, wenxuanx.wu, jie1x.wang, dapengx.yu

On 14/12/2022 10:19, David Marchand wrote:
> On Tue, Dec 13, 2022 at 7:48 PM Kevin Traynor <ktraynor@redhat.com> wrote:
>>
>> This reverts commit 46abe3043e56f4905972ad87f1bfb15f4c1bc4a2.
>>
>> This chain of commits has been found to cause issues with setting
>> max frame size when the link is not negotiated in 1s or the link
>> is down. The frame size is not set and no error is returned to
>> the user.
>>
>> Revert the chain until a fix is found.
>>
>> Link to original upstream commit and discussion:
>> 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
>> https://mails.dpdk.org/archives/dev/2022-December/257566.html
>>
>> Reported-by: David Marchand <david.marchand@redhat.com>
>> Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
> 
> For the series,
> Acked-by: David Marchand <david.marchand@redhat.com>
> 
> 

Thanks David. No review from authors/i40e maintainers :/
Applied and pushed to 21.11 branch.


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

end of thread, other threads:[~2022-12-19 10:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-13 18:47 [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722" Kevin Traynor
2022-12-13 18:47 ` [PATCH 21.11 2/3] Revert "net/i40e: fix max frame size config at port level" Kevin Traynor
2022-12-13 18:47 ` [PATCH 21.11 3/3] Revert "net/i40e: enable maximum frame size " Kevin Traynor
2022-12-14 10:19 ` [PATCH 21.11 1/3] Revert "net/i40e: fix jumbo frame Rx with X722" David Marchand
2022-12-19 10:20   ` Kevin Traynor

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