From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 492DD41BAE; Thu, 2 Feb 2023 14:14:20 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3185A42D32; Thu, 2 Feb 2023 14:14:20 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id E9B634014F for ; Thu, 2 Feb 2023 14:14:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675343658; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qJ3cq4mY8T9q+aHlV/B0OO+fWwqKt7zMNBwbiGfFa2A=; b=ASz1Flgdqe6fE9cU+aBD8JrjywUqVkqASwYnMEbIUil8cpSSLmzbkWP3QpJL7jxG9vSCGf xM19JNjX1QNNPvd+VBuLGhVR5PWwbPNlvT0za+nDk/8EFYxrPKm2W20PA6w9y5R6bKZkLU 42uA+pYvnxOmdQSfBMgVifNQNwyqkdo= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-601-fkYNcFBSP9mU3uZeMheqWg-1; Thu, 02 Feb 2023 08:14:17 -0500 X-MC-Unique: fkYNcFBSP9mU3uZeMheqWg-1 Received: by mail-wm1-f70.google.com with SMTP id h18-20020a05600c351200b003dc25fc1849so983291wmq.6 for ; Thu, 02 Feb 2023 05:14:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:subject:from:references:cc:to :content-language:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qJ3cq4mY8T9q+aHlV/B0OO+fWwqKt7zMNBwbiGfFa2A=; b=fssc4eeTcEe5qZe9s3NISvvj8+UP5K2SAHxH/qWY2L4PW23FkmY7Pl8KEypyE0pQhw i2qoUQ9gCv+elRBS8hOqFw6m80HO2Bbed0wrJUBUldcEfPSv7Bt44O7z/mXW8jwcL5yq BDtIHfBZnr3M/Bc/GN592Iu0f6E2XQwwI+O2E3sxNB7SfAXCLD1amh4pJ2HaRTzI/lp8 JGSxAyzJw1Jky+a/96OGqp3rEjFSbbkwksIBWO7zazUs1SlZuipuRTvfnnnBIp5YOXCR OoCO2QojZD50h3bBgBcpOSuv4C48HkNhYQHKc2ur/cdrqMUaf4ZBtoEfb5HN/L2+Eyzv rG/w== X-Gm-Message-State: AO0yUKUDD75OwY3Gv90P5raZFz3cbLLMcXz6A3nzATYsP8Xh6iu7X1LM pCSgcsda9ufCB5/PKEZ8AnwFPNHkACRfeLB7z6gtE3uhvn9faxbLk5AQe0KfDNwrP8R4xeGxZEx 7jBo= X-Received: by 2002:a7b:c85a:0:b0:3d2:392e:905f with SMTP id c26-20020a7bc85a000000b003d2392e905fmr5678648wml.24.1675343656386; Thu, 02 Feb 2023 05:14:16 -0800 (PST) X-Google-Smtp-Source: AK7set/MUt8pRmnSyH25XtImJAbIO3zJPtXT5JddzZMrDSJS2RM+T12jSfqcJmlDtH+imPDQa+eYnw== X-Received: by 2002:a7b:c85a:0:b0:3d2:392e:905f with SMTP id c26-20020a7bc85a000000b003d2392e905fmr5678637wml.24.1675343656209; Thu, 02 Feb 2023 05:14:16 -0800 (PST) Received: from [192.168.0.36] ([78.16.251.63]) by smtp.gmail.com with ESMTPSA id e21-20020a5d5955000000b002b57bae7174sm19656061wri.5.2023.02.02.05.14.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 02 Feb 2023 05:14:15 -0800 (PST) Message-ID: <20f8321b-c776-6601-9eb4-c691cab46571@redhat.com> Date: Thu, 2 Feb 2023 13:14:14 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 To: Simei Su , 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 References: <20230131103138.302942-1-simei.su@intel.com> <20230202123021.54416-1-simei.su@intel.com> From: Kevin Traynor Subject: Re: [PATCH v4] net/i40e: rework maximum frame size configuration In-Reply-To: <20230202123021.54416-1-simei.su@intel.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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 > --- > 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