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 17854A0540 for ; Tue, 13 Dec 2022 19:48:16 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1262E40A7E; Tue, 13 Dec 2022 19:48:16 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 9B9F24021D for ; Tue, 13 Dec 2022 19:48:14 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1670957294; 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=wgnyn6a5MsrdjyD39XCRy8LUEMMKfZSDimbiWfMErHQ=; b=JnGK60dSHtRrpHCOs1VzUzRfCU8WbMuYZ8uoTZYapkSBx6WRCTzWXOGcZgNb5282g8+ou/ 3mPqBqDOzTnbkFo+9FLHNJsd6KPu/IoU36ZFz2aUmXztsz8IXjnGWRfIwJfb8gAMRPXxXG 3pXMzfYKrM7ZmSGUd8KOOCiuyx0teC0= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-524-Dy12KAcPOOaLI8biPm1xjQ-1; Tue, 13 Dec 2022 13:48:11 -0500 X-MC-Unique: Dy12KAcPOOaLI8biPm1xjQ-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5BF4A81B538; Tue, 13 Dec 2022 18:48:10 +0000 (UTC) Received: from rh.redhat.com (unknown [10.39.195.49]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4ECF851FF; Tue, 13 Dec 2022 18:48:08 +0000 (UTC) From: Kevin Traynor To: stable@dpdk.org Cc: bluca@debian.org, david.marchand@redhat.com, john.mcnamara@intel.com, qi.z.zhang@intel.com, yux.jiang@intel.com, beilei.xing@intel.com, Yuying.Zhang@intel.com, wenxuanx.wu@intel.com, jie1x.wang@intel.com, dapengx.yu@intel.com, Kevin Traynor Subject: [PATCH 21.11 3/3] Revert "net/i40e: enable maximum frame size at port level" Date: Tue, 13 Dec 2022 18:47:33 +0000 Message-Id: <20221213184733.411996-3-ktraynor@redhat.com> In-Reply-To: <20221213184733.411996-1-ktraynor@redhat.com> References: <20221213184733.411996-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.5 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org 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 Signed-off-by: Kevin Traynor --- 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