patches for DPDK stable branches
 help / color / mirror / Atom feed
* [PATCH v6] net/i40e: rework maximum frame size configuration
@ 2023-02-20  7:27 Simei Su
  2023-02-20  8:05 ` Su, Simei
  0 siblings, 1 reply; 12+ messages in thread
From: Simei Su @ 2023-02-20  7:27 UTC (permalink / raw)
  To: wenjun1.wu; +Cc: Simei Su, stable

The issue reported by David is that error occurs in OVS due to the fix
patch in mentionned changes below. The detailed reproduce step and result
is in https://patchwork.dpdk.org/project/dpdk/patch/
20211207085946.121032-1-dapengx.yu@intel.com/.

This patch removes unnecessary link status check and directly sets mac
config in dev_start. Also, it sets the parameter "wait to complete" true
to wait for more time to make sure adminq command execute completed.

Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port level")
Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port level")
Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
Cc: stable@dpdk.org

Signed-off-by: Simei Su <simei.su@intel.com>
---
v6:
* Refine commit log.
* Remove return error.

v5:
* Fix misspelling in commit log.

v4:
* Refine commit log.
* Avoid duplicate call to set parameter "wait to complete" true.

v3:
* Put link update before interrupt enable.

v2:
* Refine commit log.
* Add link update.

 drivers/net/i40e/i40e_ethdev.c | 50 ++++++++----------------------------------
 1 file changed, 9 insertions(+), 41 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 7726a89d..30c904c 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -387,7 +387,6 @@ static int i40e_set_default_mac_addr(struct rte_eth_dev *dev,
 				      struct rte_ether_addr *mac_addr);
 
 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(
 	const struct rte_eth_ethertype_filter *input,
@@ -2449,7 +2448,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
 			PMD_DRV_LOG(WARNING, "Fail to set phy mask");
 
 		/* Call get_link_info aq command to enable/disable LSE */
-		i40e_dev_link_update(dev, 0);
+		i40e_dev_link_update(dev, 1);
 	}
 
 	if (dev->data->dev_conf.intr_conf.rxq == 0) {
@@ -2467,8 +2466,12 @@ i40e_dev_start(struct rte_eth_dev *dev)
 			    "please call hierarchy_commit() "
 			    "before starting the port");
 
-	max_frame_size = dev->data->mtu + I40E_ETH_OVERHEAD;
-	i40e_set_mac_max_frame(dev, max_frame_size);
+	max_frame_size = dev->data->mtu ?
+		dev->data->mtu + I40E_ETH_OVERHEAD :
+		I40E_FRAME_SIZE_MAX;
+
+	/* Set the max frame size to HW*/
+	i40e_aq_set_mac_config(hw, max_frame_size, TRUE, false, 0, NULL);
 
 	return I40E_SUCCESS;
 
@@ -2809,9 +2812,6 @@ i40e_dev_set_link_down(struct rte_eth_dev *dev)
 	return i40e_phy_conf_link(hw, abilities, speed, false);
 }
 
-#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)
 {
@@ -2878,6 +2878,8 @@ static __rte_always_inline void
 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;
 	int status;
@@ -12123,40 +12125,6 @@ i40e_cloud_filter_qinq_create(struct i40e_pf *pf)
 	return ret;
 }
 
-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;
-	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) {
-		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;
-	}
-
-	if (can_be_set) {
-		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);
 #ifdef RTE_ETHDEV_DEBUG_RX
-- 
2.9.5


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

* RE: [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-02-20  7:27 [PATCH v6] net/i40e: rework maximum frame size configuration Simei Su
@ 2023-02-20  8:05 ` Su, Simei
  0 siblings, 0 replies; 12+ messages in thread
From: Su, Simei @ 2023-02-20  8:05 UTC (permalink / raw)
  To: stable

Sorry for sending this email incorrectly, please ignore this mail.

Thanks,
Simei

> -----Original Message-----
> From: Su, Simei <simei.su@intel.com>
> Sent: Monday, February 20, 2023 3:27 PM
> To: Wu, Wenjun1 <wenjun1.wu@intel.com>
> Cc: Su, Simei <simei.su@intel.com>; stable@dpdk.org
> Subject: [PATCH v6] net/i40e: rework maximum frame size configuration
> 
> The issue reported by David is that error occurs in OVS due to the fix patch in
> mentionned changes below. The detailed reproduce step and result is in
> https://patchwork.dpdk.org/project/dpdk/patch/
> 20211207085946.121032-1-dapengx.yu@intel.com/.
> 
> This patch removes unnecessary link status check and directly sets mac config
> in dev_start. Also, it sets the parameter "wait to complete" true to wait for
> more time to make sure adminq command execute completed.
> 
> Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port level")
> Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port level")
> Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Simei Su <simei.su@intel.com>
> ---
> v6:
> * Refine commit log.
> * Remove return error.
> 
> v5:
> * Fix misspelling in commit log.
> 
> v4:
> * Refine commit log.
> * Avoid duplicate call to set parameter "wait to complete" true.
> 
> v3:
> * Put link update before interrupt enable.
> 
> v2:
> * Refine commit log.
> * Add link update.
> 
>  drivers/net/i40e/i40e_ethdev.c | 50 ++++++++----------------------------------
>  1 file changed, 9 insertions(+), 41 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 7726a89d..30c904c 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -387,7 +387,6 @@ static int i40e_set_default_mac_addr(struct
> rte_eth_dev *dev,
>  				      struct rte_ether_addr *mac_addr);
> 
>  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(
>  	const struct rte_eth_ethertype_filter *input, @@ -2449,7 +2448,7 @@
> i40e_dev_start(struct rte_eth_dev *dev)
>  			PMD_DRV_LOG(WARNING, "Fail to set phy mask");
> 
>  		/* Call get_link_info aq command to enable/disable LSE */
> -		i40e_dev_link_update(dev, 0);
> +		i40e_dev_link_update(dev, 1);
>  	}
> 
>  	if (dev->data->dev_conf.intr_conf.rxq == 0) { @@ -2467,8 +2466,12 @@
> i40e_dev_start(struct rte_eth_dev *dev)
>  			    "please call hierarchy_commit() "
>  			    "before starting the port");
> 
> -	max_frame_size = dev->data->mtu + I40E_ETH_OVERHEAD;
> -	i40e_set_mac_max_frame(dev, max_frame_size);
> +	max_frame_size = dev->data->mtu ?
> +		dev->data->mtu + I40E_ETH_OVERHEAD :
> +		I40E_FRAME_SIZE_MAX;
> +
> +	/* Set the max frame size to HW*/
> +	i40e_aq_set_mac_config(hw, max_frame_size, TRUE, false, 0, NULL);
> 
>  	return I40E_SUCCESS;
> 
> @@ -2809,9 +2812,6 @@ i40e_dev_set_link_down(struct rte_eth_dev *dev)
>  	return i40e_phy_conf_link(hw, abilities, speed, false);  }
> 
> -#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)  { @@
> -2878,6 +2878,8 @@ static __rte_always_inline void  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;
>  	int status;
> @@ -12123,40 +12125,6 @@ i40e_cloud_filter_qinq_create(struct i40e_pf
> *pf)
>  	return ret;
>  }
> 
> -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;
> -	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) {
> -		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;
> -	}
> -
> -	if (can_be_set) {
> -		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);  #ifdef
> RTE_ETHDEV_DEBUG_RX
> --
> 2.9.5


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

* RE: [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-03-24  9:40           ` Kevin Traynor
  2023-03-24 10:20             ` Jiang, YuX
@ 2023-03-24 13:07             ` Su, Simei
  1 sibling, 0 replies; 12+ messages in thread
From: Su, Simei @ 2023-03-24 13:07 UTC (permalink / raw)
  To: Kevin Traynor, Jiang, YuX, Zhang, Qi Z, Xing, Beilei, Zhang,
	Yuying, david.marchand
  Cc: dev, Yang, Qiming, stable, Luca Boccassi, Mcnamara, John

Hi Kevin,

> -----Original Message-----
> From: Kevin Traynor <ktraynor@redhat.com>
> Sent: Friday, March 24, 2023 5:40 PM
> To: Jiang, YuX <yux.jiang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; Su,
> Simei <simei.su@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Zhang,
> Yuying <yuying.zhang@intel.com>; david.marchand@redhat.com
> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; stable@dpdk.org;
> Luca Boccassi <bluca@debian.org>; Mcnamara, John
> <john.mcnamara@intel.com>
> Subject: Re: [PATCH v6] net/i40e: rework maximum frame size configuration
> 
> On 24/03/2023 06:32, Jiang, YuX wrote:
> >> -----Original Message-----
> >> From: Kevin Traynor <ktraynor@redhat.com>
> >> Sent: Thursday, March 23, 2023 10:51 PM
> >> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Su, Simei
> >> <simei.su@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Zhang,
> >> Yuying <yuying.zhang@intel.com>; david.marchand@redhat.com; Jiang,
> >> YuX <yux.jiang@intel.com>
> >> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>;
> >> stable@dpdk.org; Luca Boccassi <bluca@debian.org>; Mcnamara, John
> >> <john.mcnamara@intel.com>
> >> Subject: Re: [PATCH v6] net/i40e: rework maximum frame size
> >> configuration
> >>
> >> On 22/03/2023 16:50, Kevin Traynor wrote:
> >>> On 27/02/2023 00:35, Zhang, Qi Z wrote:
> >>>>
> >>>
> >>> Hi Simei/Qi/Yu
> >>>
> >>
> >> Hi Yu,
> >>
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Su, Simei <simei.su@intel.com>
> >>>>> Sent: Monday, February 20, 2023 4:00 PM
> >>>>> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Yuying
> >>>>> <yuying.zhang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> >>>>> david.marchand@redhat.com
> >>>>> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Su, Simei
> >>>>> <simei.su@intel.com>; stable@dpdk.org
> >>>>> Subject: [PATCH v6] net/i40e: rework maximum frame size
> >>>>> configuration
> >>>>>
> >>>>> One issue is reported by David Marchand that error occurs in OVS
> >>>>> due to the fix patch in mentioned changes below. The detailed
> >>>>> reproduce step and result are in
> >>>>> https://patchwork.dpdk.org/project/dpdk/patch/
> >>>>> 20211207085946.121032-1-dapengx.yu@intel.com/.
> >>>>>
> >>>>> This patch removes unnecessary link status check and directly sets
> >>>>> mac config in dev_start. Also, it sets the parameter "wait to
> >>>>> complete" true to wait for more time to make sure adminq command
> >> execute completed.
> >>>>>
> >>>
> >>>>> Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port
> >>>>> level")
> >>>>> Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port
> >>>>> level")
> >>>>> Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
> >>>>> Cc: stable@dpdk.org
> >>>
> >>> These patches caused an observable regression in multiple 20.11 and
> >>> 21.11 LTS releases that was only caught a long time after releases.
> >>>
> >>> Is there anything being added to LTS validation for regression
> >>> testing this issue, so we don't get caught again?
> >>>
> >>
> >> This is the issue I was talking about earlier during the release
> >> meeting. Not sure if we were talking about the same patch.
> >>
> >> I was asking if there are some regression tests added/can be added to
> >> LTS validation that will be run during each LTS validation cycle so
> >> we don't have any more regressions on it.
> >>
> > Hi Kevin,
> > Thanks for your comments.
> > Yes. We are adding additional case to cover more testing. For main branch,
> we have done the regression testing (including the additional case testing),
> they both work well.
> 
> That's good to hear. Will the additional regression tests also be added to the
> LTS validation tests when they are run?
> 
> > We hope the two related patches can be backported to LTS branch, and the
> second patch just reworks for previous bug's fix.
> > 	Patch1:
> https://patchwork.dpdk.org/project/dpdk/patch/20221213091837.87953-1-d
> avid.marchand@redhat.com/	a8ca8ed net/i40e: revert link status check
> on device start
> 
> I have already reverted those 3 backports on 21.11 branch so this is not
> needed.
> 
> > 	Pathc2:
> https://patchwork.dpdk.org/project/dpdk/patch/20230306121853.27547-1-s
> imei.su@intel.com/	82fcf20 net/i40e: fix maximum frame size
> configuration
> >
> 
> That is the v7 of this v6 with revert and fix split, so same one being discussed
> above.

The fix split is to rework and simplify code in previous bug fix patch for unexpected packets received issue.

Best Regards,
Simei

> 
> > Best regards,
> > Yu Jiang
> >
> >> thanks,
> >> Kevin.
> >>
> >>> After reverting the original patch and 2 fixes, I'm a bit reluctant
> >>> to take more fixes without some form of regression testing in place.
> >>>
> >>> thanks,
> >>> Kevin.
> >>>
> >>>>>
> >>>>> Reported-by: David Marchand <david.marchand@redhat.com>
> >>>>> Signed-off-by: Simei Su <simei.su@intel.com>
> >>>>
> >>>> Acked-by: Qi Zhang <qi.z.zhang@intel.com>
> >>>>
> >>>> Applied to dpdk-next-net-intel.
> >>>>
> >>>> Thanks
> >>>> Qi
> >>>>
> >>>
> >


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

* RE: [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-03-24  9:40           ` Kevin Traynor
@ 2023-03-24 10:20             ` Jiang, YuX
  2023-03-24 13:07             ` Su, Simei
  1 sibling, 0 replies; 12+ messages in thread
From: Jiang, YuX @ 2023-03-24 10:20 UTC (permalink / raw)
  To: Kevin Traynor, Zhang, Qi Z, Su, Simei, Xing, Beilei, Zhang,
	Yuying, david.marchand
  Cc: dev, Yang, Qiming, stable, Luca Boccassi, Mcnamara, John

> -----Original Message-----
> From: Kevin Traynor <ktraynor@redhat.com>
> Sent: Friday, March 24, 2023 5:40 PM
> To: Jiang, YuX <yux.jiang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>; Su,
> Simei <simei.su@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Zhang,
> Yuying <yuying.zhang@intel.com>; david.marchand@redhat.com
> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; stable@dpdk.org;
> Luca Boccassi <bluca@debian.org>; Mcnamara, John
> <john.mcnamara@intel.com>
> Subject: Re: [PATCH v6] net/i40e: rework maximum frame size configuration
> 
> On 24/03/2023 06:32, Jiang, YuX wrote:
> >> -----Original Message-----
> >> From: Kevin Traynor <ktraynor@redhat.com>
> >> Sent: Thursday, March 23, 2023 10:51 PM
> >> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Su, Simei
> >> <simei.su@intel.com>; Xing, Beilei <beilei.xing@intel.com>; Zhang,
> >> Yuying <yuying.zhang@intel.com>; david.marchand@redhat.com; Jiang,
> >> YuX <yux.jiang@intel.com>
> >> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>;
> >> stable@dpdk.org; Luca Boccassi <bluca@debian.org>; Mcnamara, John
> >> <john.mcnamara@intel.com>
> >> Subject: Re: [PATCH v6] net/i40e: rework maximum frame size
> >> configuration
> >>
> >> On 22/03/2023 16:50, Kevin Traynor wrote:
> >>> On 27/02/2023 00:35, Zhang, Qi Z wrote:
> >>>>
> >>>
> >>> Hi Simei/Qi/Yu
> >>>
> >>
> >> Hi Yu,
> >>
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Su, Simei <simei.su@intel.com>
> >>>>> Sent: Monday, February 20, 2023 4:00 PM
> >>>>> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Yuying
> >>>>> <yuying.zhang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> >>>>> david.marchand@redhat.com
> >>>>> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Su, Simei
> >>>>> <simei.su@intel.com>; stable@dpdk.org
> >>>>> Subject: [PATCH v6] net/i40e: rework maximum frame size
> >>>>> configuration
> >>>>>
> >>>>> One issue is reported by David Marchand that error occurs in OVS
> >>>>> due to the fix patch in mentioned changes below. The detailed
> >>>>> reproduce step and result are in
> >>>>> https://patchwork.dpdk.org/project/dpdk/patch/
> >>>>> 20211207085946.121032-1-dapengx.yu@intel.com/.
> >>>>>
> >>>>> This patch removes unnecessary link status check and directly sets
> >>>>> mac config in dev_start. Also, it sets the parameter "wait to
> >>>>> complete" true to wait for more time to make sure adminq command
> >> execute completed.
> >>>>>
> >>>
> >>>>> Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port
> >>>>> level")
> >>>>> Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port
> >>>>> level")
> >>>>> Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
> >>>>> Cc: stable@dpdk.org
> >>>
> >>> These patches caused an observable regression in multiple 20.11 and
> >>> 21.11 LTS releases that was only caught a long time after releases.
> >>>
> >>> Is there anything being added to LTS validation for regression
> >>> testing this issue, so we don't get caught again?
> >>>
> >>
> >> This is the issue I was talking about earlier during the release
> >> meeting. Not sure if we were talking about the same patch.
> >>
> >> I was asking if there are some regression tests added/can be added to
> >> LTS validation that will be run during each LTS validation cycle so
> >> we don't have any more regressions on it.
> >>
> > Hi Kevin,
> > Thanks for your comments.
> > Yes. We are adding additional case to cover more testing. For main branch,
> we have done the regression testing (including the additional case testing), they
> both work well.
> 
> That's good to hear. Will the additional regression tests also be added to the
> LTS validation tests when they are run?
> 
Yes, we will test the additional case on each LTS version from now on.

Best regards,
Yu Jiang

> > We hope the two related patches can be backported to LTS branch, and the
> second patch just reworks for previous bug's fix.
> > 	Patch1:
> https://patchwork.dpdk.org/project/dpdk/patch/20221213091837.87953-1-
> david.marchand@redhat.com/	a8ca8ed net/i40e: revert link status check on
> device start
> 
> I have already reverted those 3 backports on 21.11 branch so this is not needed.
> 
> > 	Pathc2:
> https://patchwork.dpdk.org/project/dpdk/patch/20230306121853.27547-1-
> simei.su@intel.com/	82fcf20 net/i40e: fix maximum frame size
> configuration
> >
> 
> That is the v7 of this v6 with revert and fix split, so same one being discussed
> above.
> 
> > Best regards,
> > Yu Jiang
> >
> >> thanks,
> >> Kevin.
> >>
> >>> After reverting the original patch and 2 fixes, I'm a bit reluctant
> >>> to take more fixes without some form of regression testing in place.
> >>>
> >>> thanks,
> >>> Kevin.
> >>>
> >>>>>
> >>>>> Reported-by: David Marchand <david.marchand@redhat.com>
> >>>>> Signed-off-by: Simei Su <simei.su@intel.com>
> >>>>
> >>>> Acked-by: Qi Zhang <qi.z.zhang@intel.com>
> >>>>
> >>>> Applied to dpdk-next-net-intel.
> >>>>
> >>>> Thanks
> >>>> Qi
> >>>>
> >>>
> >


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

* Re: [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-03-24  6:32         ` Jiang, YuX
@ 2023-03-24  9:40           ` Kevin Traynor
  2023-03-24 10:20             ` Jiang, YuX
  2023-03-24 13:07             ` Su, Simei
  0 siblings, 2 replies; 12+ messages in thread
From: Kevin Traynor @ 2023-03-24  9:40 UTC (permalink / raw)
  To: Jiang, YuX, Zhang, Qi Z, Su, Simei, Xing, Beilei, Zhang, Yuying,
	david.marchand
  Cc: dev, Yang, Qiming, stable, Luca Boccassi, Mcnamara, John

On 24/03/2023 06:32, Jiang, YuX wrote:
>> -----Original Message-----
>> From: Kevin Traynor <ktraynor@redhat.com>
>> Sent: Thursday, March 23, 2023 10:51 PM
>> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Su, Simei <simei.su@intel.com>; Xing,
>> Beilei <beilei.xing@intel.com>; Zhang, Yuying <yuying.zhang@intel.com>;
>> david.marchand@redhat.com; Jiang, YuX <yux.jiang@intel.com>
>> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; stable@dpdk.org;
>> Luca Boccassi <bluca@debian.org>; Mcnamara, John
>> <john.mcnamara@intel.com>
>> Subject: Re: [PATCH v6] net/i40e: rework maximum frame size configuration
>>
>> On 22/03/2023 16:50, Kevin Traynor wrote:
>>> On 27/02/2023 00:35, Zhang, Qi Z wrote:
>>>>
>>>
>>> Hi Simei/Qi/Yu
>>>
>>
>> Hi Yu,
>>
>>>>
>>>>> -----Original Message-----
>>>>> From: Su, Simei <simei.su@intel.com>
>>>>> Sent: Monday, February 20, 2023 4:00 PM
>>>>> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Yuying
>>>>> <yuying.zhang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
>>>>> david.marchand@redhat.com
>>>>> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Su, Simei
>>>>> <simei.su@intel.com>; stable@dpdk.org
>>>>> Subject: [PATCH v6] net/i40e: rework maximum frame size
>>>>> configuration
>>>>>
>>>>> One issue is reported by David Marchand that error occurs in OVS due
>>>>> to the fix patch in mentioned changes below. The detailed reproduce
>>>>> step and result are in
>>>>> https://patchwork.dpdk.org/project/dpdk/patch/
>>>>> 20211207085946.121032-1-dapengx.yu@intel.com/.
>>>>>
>>>>> This patch removes unnecessary link status check and directly sets
>>>>> mac config in dev_start. Also, it sets the parameter "wait to
>>>>> complete" true to wait for more time to make sure adminq command
>> execute completed.
>>>>>
>>>
>>>>> Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port
>>>>> level")
>>>>> Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port
>>>>> level")
>>>>> Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
>>>>> Cc: stable@dpdk.org
>>>
>>> These patches caused an observable regression in multiple 20.11 and
>>> 21.11 LTS releases that was only caught a long time after releases.
>>>
>>> Is there anything being added to LTS validation for regression testing
>>> this issue, so we don't get caught again?
>>>
>>
>> This is the issue I was talking about earlier during the release meeting. Not sure
>> if we were talking about the same patch.
>>
>> I was asking if there are some regression tests added/can be added to LTS
>> validation that will be run during each LTS validation cycle so we don't have any
>> more regressions on it.
>>
> Hi Kevin,
> Thanks for your comments.
> Yes. We are adding additional case to cover more testing. For main branch, we have done the regression testing (including the additional case testing), they both work well.

That's good to hear. Will the additional regression tests also be added 
to the LTS validation tests when they are run?

> We hope the two related patches can be backported to LTS branch, and the second patch just reworks for previous bug's fix.
> 	Patch1: https://patchwork.dpdk.org/project/dpdk/patch/20221213091837.87953-1-david.marchand@redhat.com/	a8ca8ed net/i40e: revert link status check on device start

I have already reverted those 3 backports on 21.11 branch so this is not 
needed.

> 	Pathc2: https://patchwork.dpdk.org/project/dpdk/patch/20230306121853.27547-1-simei.su@intel.com/	82fcf20 net/i40e: fix maximum frame size configuration
> 

That is the v7 of this v6 with revert and fix split, so same one being 
discussed above.

> Best regards,
> Yu Jiang
> 
>> thanks,
>> Kevin.
>>
>>> After reverting the original patch and 2 fixes, I'm a bit reluctant to
>>> take more fixes without some form of regression testing in place.
>>>
>>> thanks,
>>> Kevin.
>>>
>>>>>
>>>>> Reported-by: David Marchand <david.marchand@redhat.com>
>>>>> Signed-off-by: Simei Su <simei.su@intel.com>
>>>>
>>>> Acked-by: Qi Zhang <qi.z.zhang@intel.com>
>>>>
>>>> Applied to dpdk-next-net-intel.
>>>>
>>>> Thanks
>>>> Qi
>>>>
>>>
> 


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

* RE: [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-03-23 14:50       ` Kevin Traynor
@ 2023-03-24  6:32         ` Jiang, YuX
  2023-03-24  9:40           ` Kevin Traynor
  0 siblings, 1 reply; 12+ messages in thread
From: Jiang, YuX @ 2023-03-24  6:32 UTC (permalink / raw)
  To: Kevin Traynor, Zhang, Qi Z, Su, Simei, Xing, Beilei, Zhang,
	Yuying, david.marchand
  Cc: dev, Yang, Qiming, stable, Luca Boccassi, Mcnamara, John

> -----Original Message-----
> From: Kevin Traynor <ktraynor@redhat.com>
> Sent: Thursday, March 23, 2023 10:51 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Su, Simei <simei.su@intel.com>; Xing,
> Beilei <beilei.xing@intel.com>; Zhang, Yuying <yuying.zhang@intel.com>;
> david.marchand@redhat.com; Jiang, YuX <yux.jiang@intel.com>
> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; stable@dpdk.org;
> Luca Boccassi <bluca@debian.org>; Mcnamara, John
> <john.mcnamara@intel.com>
> Subject: Re: [PATCH v6] net/i40e: rework maximum frame size configuration
> 
> On 22/03/2023 16:50, Kevin Traynor wrote:
> > On 27/02/2023 00:35, Zhang, Qi Z wrote:
> >>
> >
> > Hi Simei/Qi/Yu
> >
> 
> Hi Yu,
> 
> >>
> >>> -----Original Message-----
> >>> From: Su, Simei <simei.su@intel.com>
> >>> Sent: Monday, February 20, 2023 4:00 PM
> >>> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Yuying
> >>> <yuying.zhang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> >>> david.marchand@redhat.com
> >>> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Su, Simei
> >>> <simei.su@intel.com>; stable@dpdk.org
> >>> Subject: [PATCH v6] net/i40e: rework maximum frame size
> >>> configuration
> >>>
> >>> One issue is reported by David Marchand that error occurs in OVS due
> >>> to the fix patch in mentioned changes below. The detailed reproduce
> >>> step and result are in
> >>> https://patchwork.dpdk.org/project/dpdk/patch/
> >>> 20211207085946.121032-1-dapengx.yu@intel.com/.
> >>>
> >>> This patch removes unnecessary link status check and directly sets
> >>> mac config in dev_start. Also, it sets the parameter "wait to
> >>> complete" true to wait for more time to make sure adminq command
> execute completed.
> >>>
> >
> >>> Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port
> >>> level")
> >>> Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port
> >>> level")
> >>> Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
> >>> Cc: stable@dpdk.org
> >
> > These patches caused an observable regression in multiple 20.11 and
> > 21.11 LTS releases that was only caught a long time after releases.
> >
> > Is there anything being added to LTS validation for regression testing
> > this issue, so we don't get caught again?
> >
> 
> This is the issue I was talking about earlier during the release meeting. Not sure
> if we were talking about the same patch.
> 
> I was asking if there are some regression tests added/can be added to LTS
> validation that will be run during each LTS validation cycle so we don't have any
> more regressions on it.
> 
Hi Kevin, 
Thanks for your comments.
Yes. We are adding additional case to cover more testing. For main branch, we have done the regression testing (including the additional case testing), they both work well.
We hope the two related patches can be backported to LTS branch, and the second patch just reworks for previous bug's fix.
	Patch1: https://patchwork.dpdk.org/project/dpdk/patch/20221213091837.87953-1-david.marchand@redhat.com/	a8ca8ed net/i40e: revert link status check on device start
	Pathc2: https://patchwork.dpdk.org/project/dpdk/patch/20230306121853.27547-1-simei.su@intel.com/	82fcf20 net/i40e: fix maximum frame size configuration

Best regards,
Yu Jiang

> thanks,
> Kevin.
> 
> > After reverting the original patch and 2 fixes, I'm a bit reluctant to
> > take more fixes without some form of regression testing in place.
> >
> > thanks,
> > Kevin.
> >
> >>>
> >>> Reported-by: David Marchand <david.marchand@redhat.com>
> >>> Signed-off-by: Simei Su <simei.su@intel.com>
> >>
> >> Acked-by: Qi Zhang <qi.z.zhang@intel.com>
> >>
> >> Applied to dpdk-next-net-intel.
> >>
> >> Thanks
> >> Qi
> >>
> >


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

* Re: [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-03-22 16:50     ` Kevin Traynor
@ 2023-03-23 14:50       ` Kevin Traynor
  2023-03-24  6:32         ` Jiang, YuX
  0 siblings, 1 reply; 12+ messages in thread
From: Kevin Traynor @ 2023-03-23 14:50 UTC (permalink / raw)
  To: Zhang, Qi Z, Su, Simei, Xing, Beilei, Zhang, Yuying,
	david.marchand, Jiang, YuX
  Cc: dev, Yang, Qiming, stable, Luca Boccassi, Mcnamara, John

On 22/03/2023 16:50, Kevin Traynor wrote:
> On 27/02/2023 00:35, Zhang, Qi Z wrote:
>>
> 
> Hi Simei/Qi/Yu
> 

Hi Yu,

>>
>>> -----Original Message-----
>>> From: Su, Simei <simei.su@intel.com>
>>> Sent: Monday, February 20, 2023 4:00 PM
>>> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Yuying
>>> <yuying.zhang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
>>> david.marchand@redhat.com
>>> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Su, Simei
>>> <simei.su@intel.com>; stable@dpdk.org
>>> Subject: [PATCH v6] net/i40e: rework maximum frame size configuration
>>>
>>> One issue is reported by David Marchand that error occurs in OVS due to the
>>> fix patch in mentioned changes below. The detailed reproduce step and
>>> result are in https://patchwork.dpdk.org/project/dpdk/patch/
>>> 20211207085946.121032-1-dapengx.yu@intel.com/.
>>>
>>> This patch removes unnecessary link status check and directly sets mac config
>>> in dev_start. Also, it sets the parameter "wait to complete" true to wait for
>>> more time to make sure adminq command execute completed.
>>>
> 
>>> Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port level")
>>> Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port level")
>>> Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
>>> Cc: stable@dpdk.org
> 
> These patches caused an observable regression in multiple 20.11 and
> 21.11 LTS releases that was only caught a long time after releases.
> 
> Is there anything being added to LTS validation for regression testing
> this issue, so we don't get caught again?
> 

This is the issue I was talking about earlier during the release 
meeting. Not sure if we were talking about the same patch.

I was asking if there are some regression tests added/can be added to 
LTS validation that will be run during each LTS validation cycle so we 
don't have any more regressions on it.

thanks,
Kevin.

> After reverting the original patch and 2 fixes, I'm a bit reluctant to
> take more fixes without some form of regression testing in place.
> 
> thanks,
> Kevin.
> 
>>>
>>> Reported-by: David Marchand <david.marchand@redhat.com>
>>> Signed-off-by: Simei Su <simei.su@intel.com>
>>
>> Acked-by: Qi Zhang <qi.z.zhang@intel.com>
>>
>> Applied to dpdk-next-net-intel.
>>
>> Thanks
>> Qi
>>
> 


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

* Re: [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-02-27  0:35   ` Zhang, Qi Z
  2023-02-28  9:36     ` David Marchand
@ 2023-03-22 16:50     ` Kevin Traynor
  2023-03-23 14:50       ` Kevin Traynor
  1 sibling, 1 reply; 12+ messages in thread
From: Kevin Traynor @ 2023-03-22 16:50 UTC (permalink / raw)
  To: Zhang, Qi Z, Su, Simei, Xing, Beilei, Zhang, Yuying,
	david.marchand, Jiang, YuX
  Cc: dev, Yang, Qiming, stable, Luca Boccassi

On 27/02/2023 00:35, Zhang, Qi Z wrote:
> 

Hi Simei/Qi/Yu

> 
>> -----Original Message-----
>> From: Su, Simei <simei.su@intel.com>
>> Sent: Monday, February 20, 2023 4:00 PM
>> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Yuying
>> <yuying.zhang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
>> david.marchand@redhat.com
>> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Su, Simei
>> <simei.su@intel.com>; stable@dpdk.org
>> Subject: [PATCH v6] net/i40e: rework maximum frame size configuration
>>
>> One issue is reported by David Marchand that error occurs in OVS due to the
>> fix patch in mentioned changes below. The detailed reproduce step and
>> result are in https://patchwork.dpdk.org/project/dpdk/patch/
>> 20211207085946.121032-1-dapengx.yu@intel.com/.
>>
>> This patch removes unnecessary link status check and directly sets mac config
>> in dev_start. Also, it sets the parameter "wait to complete" true to wait for
>> more time to make sure adminq command execute completed.
>>

>> Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port level")
>> Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port level")
>> Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
>> Cc: stable@dpdk.org

These patches caused an observable regression in multiple 20.11 and 
21.11 LTS releases that was only caught a long time after releases.

Is there anything being added to LTS validation for regression testing 
this issue, so we don't get caught again?

After reverting the original patch and 2 fixes, I'm a bit reluctant to 
take more fixes without some form of regression testing in place.

thanks,
Kevin.

>>
>> Reported-by: David Marchand <david.marchand@redhat.com>
>> Signed-off-by: Simei Su <simei.su@intel.com>
> 
> Acked-by: Qi Zhang <qi.z.zhang@intel.com>
> 
> Applied to dpdk-next-net-intel.
> 
> Thanks
> Qi
> 


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

* RE: [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-02-28  9:36     ` David Marchand
@ 2023-03-02  9:51       ` Zhang, Qi Z
  0 siblings, 0 replies; 12+ messages in thread
From: Zhang, Qi Z @ 2023-03-02  9:51 UTC (permalink / raw)
  To: David Marchand
  Cc: Su, Simei, Xing, Beilei, Zhang, Yuying, dev, Yang, Qiming,
	stable, Kevin Traynor, Thomas Monjalon



> -----Original Message-----
> From: David Marchand <david.marchand@redhat.com>
> Sent: Tuesday, February 28, 2023 5:37 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: Su, Simei <simei.su@intel.com>; Xing, Beilei <beilei.xing@intel.com>;
> Zhang, Yuying <yuying.zhang@intel.com>; dev@dpdk.org; Yang, Qiming
> <qiming.yang@intel.com>; stable@dpdk.org; Kevin Traynor
> <ktraynor@redhat.com>; Thomas Monjalon <thomas@monjalon.net>
> Subject: Re: [PATCH v6] net/i40e: rework maximum frame size configuration
> 
> Qi,
> 
> On Mon, Feb 27, 2023 at 1:35 AM Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
> > > One issue is reported by David Marchand that error occurs in OVS due
> > > to the fix patch in mentioned changes below. The detailed reproduce
> > > step and result are in
> > > https://patchwork.dpdk.org/project/dpdk/patch/
> > > 20211207085946.121032-1-dapengx.yu@intel.com/.
> > >
> > > This patch removes unnecessary link status check and directly sets
> > > mac config in dev_start. Also, it sets the parameter "wait to
> > > complete" true to wait for more time to make sure adminq command
> execute completed.
> > >
> > > Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port
> > > level")
> > > Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port
> > > level")
> > > Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
> > > Cc: stable@dpdk.org
> > >
> > > Reported-by: David Marchand <david.marchand@redhat.com>
> > > Signed-off-by: Simei Su <simei.su@intel.com>
> >
> > Acked-by: Qi Zhang <qi.z.zhang@intel.com>
> 
> I was waiting for a ping... good thing I had a look at this thread.
> 
> I suggest splitting this in two parts before it reaches the main repo:
> - put the reverts first (the reason is that 21.11 stable branch already have
> them): this would end up the same as merging
> https://patchwork.dpdk.org/project/dpdk/patch/20221213091837.87953-1-
> david.marchand@redhat.com/
> that has been waiting since December,
> - have the move of i40e_aq_set_mac_config from eth_i40e_dev_init to
> i40e_dev_start + change in i40e_dev_link_update call in a second patch (i.e.
> the following diff),

OK, reverted in dpdk-next-net-intel.

And waiting for Simei's v7.

> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index a982e42264..371f42233e 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -1710,11 +1710,6 @@ 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);
> 
> @@ -2332,6 +2327,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
>         uint32_t intr_vector = 0;
>         struct i40e_vsi *vsi;
>         uint16_t nb_rxq, nb_txq;
> +       uint16_t max_frame_size;
> 
>         hw->adapter_stopped = 0;
> 
> @@ -2452,7 +2448,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
>                         PMD_DRV_LOG(WARNING, "Fail to set phy mask");
> 
>                 /* Call get_link_info aq command to enable/disable LSE */
> -               i40e_dev_link_update(dev, 0);
> +               i40e_dev_link_update(dev, 1);
>         }
> 
>         if (dev->data->dev_conf.intr_conf.rxq == 0) { @@ -2470,6 +2466,13 @@
> i40e_dev_start(struct rte_eth_dev *dev)
>                             "please call hierarchy_commit() "
>                             "before starting the port");
> 
> +       max_frame_size = dev->data->mtu ?
> +               dev->data->mtu + I40E_ETH_OVERHEAD :
> +               I40E_FRAME_SIZE_MAX;
> +
> +       /* Set the max frame size to HW*/
> +       i40e_aq_set_mac_config(hw, max_frame_size, TRUE, false, 0,
> + NULL);
> +
>         return I40E_SUCCESS;
> 
>  tx_err:
> 
> 
> This way, the new fix is easier to read too.
> Thanks.
> 
> 
> --
> David Marchand


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

* Re: [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-02-27  0:35   ` Zhang, Qi Z
@ 2023-02-28  9:36     ` David Marchand
  2023-03-02  9:51       ` Zhang, Qi Z
  2023-03-22 16:50     ` Kevin Traynor
  1 sibling, 1 reply; 12+ messages in thread
From: David Marchand @ 2023-02-28  9:36 UTC (permalink / raw)
  To: Zhang, Qi Z
  Cc: Su, Simei, Xing, Beilei, Zhang, Yuying, dev, Yang, Qiming,
	stable, Kevin Traynor, Thomas Monjalon

Qi,

On Mon, Feb 27, 2023 at 1:35 AM Zhang, Qi Z <qi.z.zhang@intel.com> wrote:
> > One issue is reported by David Marchand that error occurs in OVS due to the
> > fix patch in mentioned changes below. The detailed reproduce step and
> > result are in https://patchwork.dpdk.org/project/dpdk/patch/
> > 20211207085946.121032-1-dapengx.yu@intel.com/.
> >
> > This patch removes unnecessary link status check and directly sets mac config
> > in dev_start. Also, it sets the parameter "wait to complete" true to wait for
> > more time to make sure adminq command execute completed.
> >
> > Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port level")
> > Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port level")
> > Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
> > Cc: stable@dpdk.org
> >
> > Reported-by: David Marchand <david.marchand@redhat.com>
> > Signed-off-by: Simei Su <simei.su@intel.com>
>
> Acked-by: Qi Zhang <qi.z.zhang@intel.com>

I was waiting for a ping... good thing I had a look at this thread.

I suggest splitting this in two parts before it reaches the main repo:
- put the reverts first (the reason is that 21.11 stable branch
already have them): this would end up the same as merging
https://patchwork.dpdk.org/project/dpdk/patch/20221213091837.87953-1-david.marchand@redhat.com/
that has been waiting since December,
- have the move of i40e_aq_set_mac_config from eth_i40e_dev_init to
i40e_dev_start + change in i40e_dev_link_update call in a second patch
(i.e. the following diff),

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index a982e42264..371f42233e 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -1710,11 +1710,6 @@ 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);

@@ -2332,6 +2327,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
        uint32_t intr_vector = 0;
        struct i40e_vsi *vsi;
        uint16_t nb_rxq, nb_txq;
+       uint16_t max_frame_size;

        hw->adapter_stopped = 0;

@@ -2452,7 +2448,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
                        PMD_DRV_LOG(WARNING, "Fail to set phy mask");

                /* Call get_link_info aq command to enable/disable LSE */
-               i40e_dev_link_update(dev, 0);
+               i40e_dev_link_update(dev, 1);
        }

        if (dev->data->dev_conf.intr_conf.rxq == 0) {
@@ -2470,6 +2466,13 @@ i40e_dev_start(struct rte_eth_dev *dev)
                            "please call hierarchy_commit() "
                            "before starting the port");

+       max_frame_size = dev->data->mtu ?
+               dev->data->mtu + I40E_ETH_OVERHEAD :
+               I40E_FRAME_SIZE_MAX;
+
+       /* Set the max frame size to HW*/
+       i40e_aq_set_mac_config(hw, max_frame_size, TRUE, false, 0, NULL);
+
        return I40E_SUCCESS;

 tx_err:


This way, the new fix is easier to read too.
Thanks.


-- 
David Marchand


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

* RE: [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-02-20  7:59 ` [PATCH v6] " Simei Su
@ 2023-02-27  0:35   ` Zhang, Qi Z
  2023-02-28  9:36     ` David Marchand
  2023-03-22 16:50     ` Kevin Traynor
  0 siblings, 2 replies; 12+ messages in thread
From: Zhang, Qi Z @ 2023-02-27  0:35 UTC (permalink / raw)
  To: Su, Simei, Xing, Beilei, Zhang, Yuying, david.marchand
  Cc: dev, Yang, Qiming, stable



> -----Original Message-----
> From: Su, Simei <simei.su@intel.com>
> Sent: Monday, February 20, 2023 4:00 PM
> To: Xing, Beilei <beilei.xing@intel.com>; Zhang, Yuying
> <yuying.zhang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> david.marchand@redhat.com
> Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Su, Simei
> <simei.su@intel.com>; stable@dpdk.org
> Subject: [PATCH v6] net/i40e: rework maximum frame size configuration
> 
> One issue is reported by David Marchand that error occurs in OVS due to the
> fix patch in mentioned changes below. The detailed reproduce step and
> result are in https://patchwork.dpdk.org/project/dpdk/patch/
> 20211207085946.121032-1-dapengx.yu@intel.com/.
> 
> This patch removes unnecessary link status check and directly sets mac config
> in dev_start. Also, it sets the parameter "wait to complete" true to wait for
> more time to make sure adminq command execute completed.
> 
> Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port level")
> Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port level")
> Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
> Cc: stable@dpdk.org
> 
> Reported-by: David Marchand <david.marchand@redhat.com>
> Signed-off-by: Simei Su <simei.su@intel.com>

Acked-by: Qi Zhang <qi.z.zhang@intel.com>

Applied to dpdk-next-net-intel.

Thanks
Qi


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

* [PATCH v6] net/i40e: rework maximum frame size configuration
  2023-02-02 12:36 [PATCH v5] " Simei Su
@ 2023-02-20  7:59 ` Simei Su
  2023-02-27  0:35   ` Zhang, Qi Z
  0 siblings, 1 reply; 12+ messages in thread
From: Simei Su @ 2023-02-20  7:59 UTC (permalink / raw)
  To: beilei.xing, yuying.zhang, qi.z.zhang, david.marchand
  Cc: dev, qiming.yang, Simei Su, stable

One issue is reported by David Marchand that error occurs in OVS due to
the fix patch in mentioned changes below. The detailed reproduce step
and result are in https://patchwork.dpdk.org/project/dpdk/patch/
20211207085946.121032-1-dapengx.yu@intel.com/.

This patch removes unnecessary link status check and directly sets mac
config in dev_start. Also, it sets the parameter "wait to complete" true
to wait for more time to make sure adminq command execute completed.

Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port level")
Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port level")
Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
Cc: stable@dpdk.org

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Simei Su <simei.su@intel.com>
---
v6:
* Refine commit log.
* Remove return error.

v5:
* Fix misspelling in commit log.

v4:
* Refine commit log.
* Avoid duplicate call to set parameter "wait to complete" true.

v3:
* Put link update before interrupt enable.

v2:
* Refine commit log.
* Add link update.

 drivers/net/i40e/i40e_ethdev.c | 50 ++++++++----------------------------------
 1 file changed, 9 insertions(+), 41 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 7726a89d..30c904c 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -387,7 +387,6 @@ static int i40e_set_default_mac_addr(struct rte_eth_dev *dev,
 				      struct rte_ether_addr *mac_addr);
 
 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(
 	const struct rte_eth_ethertype_filter *input,
@@ -2449,7 +2448,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
 			PMD_DRV_LOG(WARNING, "Fail to set phy mask");
 
 		/* Call get_link_info aq command to enable/disable LSE */
-		i40e_dev_link_update(dev, 0);
+		i40e_dev_link_update(dev, 1);
 	}
 
 	if (dev->data->dev_conf.intr_conf.rxq == 0) {
@@ -2467,8 +2466,12 @@ i40e_dev_start(struct rte_eth_dev *dev)
 			    "please call hierarchy_commit() "
 			    "before starting the port");
 
-	max_frame_size = dev->data->mtu + I40E_ETH_OVERHEAD;
-	i40e_set_mac_max_frame(dev, max_frame_size);
+	max_frame_size = dev->data->mtu ?
+		dev->data->mtu + I40E_ETH_OVERHEAD :
+		I40E_FRAME_SIZE_MAX;
+
+	/* Set the max frame size to HW*/
+	i40e_aq_set_mac_config(hw, max_frame_size, TRUE, false, 0, NULL);
 
 	return I40E_SUCCESS;
 
@@ -2809,9 +2812,6 @@ i40e_dev_set_link_down(struct rte_eth_dev *dev)
 	return i40e_phy_conf_link(hw, abilities, speed, false);
 }
 
-#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)
 {
@@ -2878,6 +2878,8 @@ static __rte_always_inline void
 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;
 	int status;
@@ -12123,40 +12125,6 @@ i40e_cloud_filter_qinq_create(struct i40e_pf *pf)
 	return ret;
 }
 
-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;
-	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) {
-		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;
-	}
-
-	if (can_be_set) {
-		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);
 #ifdef RTE_ETHDEV_DEBUG_RX
-- 
2.9.5


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

end of thread, other threads:[~2023-03-24 13:08 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-20  7:27 [PATCH v6] net/i40e: rework maximum frame size configuration Simei Su
2023-02-20  8:05 ` Su, Simei
  -- strict thread matches above, loose matches on Subject: below --
2023-02-02 12:36 [PATCH v5] " Simei Su
2023-02-20  7:59 ` [PATCH v6] " Simei Su
2023-02-27  0:35   ` Zhang, Qi Z
2023-02-28  9:36     ` David Marchand
2023-03-02  9:51       ` Zhang, Qi Z
2023-03-22 16:50     ` Kevin Traynor
2023-03-23 14:50       ` Kevin Traynor
2023-03-24  6:32         ` Jiang, YuX
2023-03-24  9:40           ` Kevin Traynor
2023-03-24 10:20             ` Jiang, YuX
2023-03-24 13:07             ` Su, Simei

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