All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Traynor <ktraynor@redhat.com>
To: Simei Su <simei.su@intel.com>,
	beilei.xing@intel.com, yuying.zhang@intel.com,
	david.marchand@redhat.com
Cc: dev@dpdk.org, qi.z.zhang@intel.com, qiming.yang@intel.com,
	stable@dpdk.org
Subject: Re: [PATCH v4] net/i40e: rework maximum frame size configuration
Date: Thu, 2 Feb 2023 13:14:14 +0000	[thread overview]
Message-ID: <20f8321b-c776-6601-9eb4-c691cab46571@redhat.com> (raw)
In-Reply-To: <20230202123021.54416-1-simei.su@intel.com>

On 02/02/2023 12:30, Simei Su wrote:
> This patch reverts mentionned changes below to remove unnecessary link
> status check and only moves max frame size configuration to dev_start.
> Also, it sets the parameter "wait to complete" true to wait for complete
> right after setting link up.
> 

I think it would be better for fixes tracking and stable branches to put 
reverts into a single or multiple patches in a series. Then put whatever 
new functionality or new fix for the code prior to these patches that 
are being reverted into a separate patch.

Otherwise fixes for this new functionality will be seen as a fix for 
patches that were reverted etc.

Also, for 21.11 I have already reverted these patches, so I won't be 
able to take a combined revert/new fixes patch without manual editing or 
getting a 21.11 branch rebased patch.

> 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>
> ---
> 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 | 54 ++++++++++--------------------------------
>   1 file changed, 13 insertions(+), 41 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 7726a89d..5d57bb9 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,16 @@ 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*/
> +	ret = i40e_aq_set_mac_config(hw, max_frame_size, TRUE, false, 0, NULL);
> +	if (ret) {
> +		PMD_DRV_LOG(ERR, "Fail to set mac config");
> +		return ret;
> +	}
>   
>   	return I40E_SUCCESS;
>   
> @@ -2809,9 +2816,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 +2882,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 +12129,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


      parent reply	other threads:[~2023-02-02 13:14 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-16 10:53 [PATCH] net/i40e: rework maximum frame size configuration Simei Su
2023-01-16 11:18 ` David Marchand
2023-01-16 12:15   ` Su, Simei
2023-01-20  7:33     ` David Marchand
2023-01-20 13:57       ` Su, Simei
2023-01-20 14:46         ` David Marchand
2023-01-20 15:37           ` Su, Simei
2023-01-31  6:52 ` [PATCH v2] " Simei Su
2023-01-31  7:44   ` 答复: [[SPF Failed]][PATCH " 韩爽
2023-01-31 10:31   ` [PATCH v3] " Simei Su
2023-02-02  5:54     ` Yang, Qiming
2023-02-02 12:30     ` [PATCH v4] " Simei Su
2023-02-02 12:36       ` [PATCH v5] " Simei Su
2023-02-02 12:55         ` David Marchand
2023-02-03  3:50           ` Su, Simei
2023-02-02 13:24         ` David Marchand
2023-02-02 13:48           ` David Marchand
2023-02-03  8:38             ` Yang, Qiming
2023-02-03  8:47               ` David Marchand
2023-02-03  4:00           ` Su, Simei
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
2023-03-06 12:18           ` [PATCH v7] net/i40e: fix max " Simei Su
2023-03-07  2:27             ` Zhang, Qi Z
2023-02-02 13:14       ` Kevin Traynor [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20f8321b-c776-6601-9eb4-c691cab46571@redhat.com \
    --to=ktraynor@redhat.com \
    --cc=beilei.xing@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=qi.z.zhang@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=simei.su@intel.com \
    --cc=stable@dpdk.org \
    --cc=yuying.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.