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 B5E2C41EA5 for ; Wed, 15 Mar 2023 23:47:08 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B03D3410DD; Wed, 15 Mar 2023 23:47:08 +0100 (CET) Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by mails.dpdk.org (Postfix) with ESMTP id DB1A040141 for ; Wed, 15 Mar 2023 23:47:07 +0100 (CET) Received: by mail-wr1-f43.google.com with SMTP id l1so18662376wry.12 for ; Wed, 15 Mar 2023 15:47:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678920427; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=EWKPyNpi7hFks80WJSrUNrDjr57D6NUG6SyMGyJiEBE=; b=pK6HURLN8ge8vVU9Kvt/cvpMJGJDTP5OwXQNl9YCu0xZqnc0eX0UnvZU8NFPStORe7 TMGPzzOsnM/Rx9ee+s49HoA6PpFaeISnLLfbbHkwvDmEESc3iYWcWKe2mjjFgdj5OEAF ZxJEN5b7DNyElxPeVNmFxazNKa7RQRLkh/AUitBXCA4bxb5l7m/QlrYSwcQsutsHb5CR PfJCJI0Og3XffRZ8/Ra3EsbxUPF6HuAlqirWLWDBgyRgQLH7dlhQILmHru2SIrYrR7pP 2fkK9v8KiXbiKRAgRaZl4UlPDzPrj+fHTo40dIDHBpAKG+QWynN2XDkXu4fw9K9pQW3y Uzqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678920427; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EWKPyNpi7hFks80WJSrUNrDjr57D6NUG6SyMGyJiEBE=; b=4R9KoglF4kyfwIKlp81StghWWWl4b6P2ymnS0OO/NV9Nn8iaJp/w+m6wjKxQ5/RbCx soGhPJTb891vkdKwA4pF+6NzFqkzFvOLpynUijGX9+MSFnMlUWM7+vBBBvAMXqTS+PCw 7y86YwCS8krZKxl8myhm4/r2uXynLmbwZPdr5BoqzcJSrLp3QR0M0ftzlyXQxUdIoSKp Tv3vjVWx55DkxAbQKUV/gjERI/VCHOZxaIcm+THV7EezsqN6WGlVOSVtwZYg82ZxA/m/ 8ylsCpOnkKVQy/Aw1yLqjP0cLi/IIUaZhTApmKv7/zH7J5i99ywbXCOHtk4Hw/FbFfLg DEmg== X-Gm-Message-State: AO0yUKWXrgptRJEhjQTo+Dq63ssz2BTS5Ngp4BkcYIhySk8iWs9MYAK2 4Fsc93VPvtVs+7gChRUTLVM= X-Google-Smtp-Source: AK7set9CXU8XQ0X0TBN2uOLz4qa4pgVey34pYQNxKz/sw6JQ+5Bc8DqJs2nVN5LKNX5/n1x8G18NMg== X-Received: by 2002:a5d:5511:0:b0:2cf:e759:58a3 with SMTP id b17-20020a5d5511000000b002cfe75958a3mr3104827wrv.13.1678920427479; Wed, 15 Mar 2023 15:47:07 -0700 (PDT) Received: from localhost ([2a01:4b00:d307:1000:f1d3:eb5e:11f4:a7d9]) by smtp.gmail.com with ESMTPSA id z9-20020adfd0c9000000b002c6e8af1037sm5674676wrh.104.2023.03.15.15.47.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Mar 2023 15:47:07 -0700 (PDT) From: luca.boccassi@gmail.com To: David Marchand Cc: Simei Su , dpdk stable Subject: patch 'net/i40e: revert link status check on device start' has been queued to stable release 20.11.8 Date: Wed, 15 Mar 2023 22:46:05 +0000 Message-Id: <20230315224631.1025649-14-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230315224631.1025649-1-luca.boccassi@gmail.com> References: <20230223093715.3926893-71-luca.boccassi@gmail.com> <20230315224631.1025649-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Hi, FYI, your patch has been queued to stable release 20.11.8 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 03/17/23. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/dd692f5dde53c2af1dfc50b2d3ffac031953e9e5 Thanks. Luca Boccassi --- >From dd692f5dde53c2af1dfc50b2d3ffac031953e9e5 Mon Sep 17 00:00:00 2001 From: David Marchand Date: Tue, 13 Dec 2022 10:18:37 +0100 Subject: [PATCH] net/i40e: revert link status check on device start [ upstream commit a8ca8edf8c076c765c6d142ab4664a1f61414233 ] The mentioned changes broke existing applications when the link status of i40e ports is down at the time the port is started. Revert those changes, the original issue will need a different fix. 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") Signed-off-by: David Marchand Acked-by: Simei Su --- drivers/net/i40e/i40e_ethdev.c | 50 +++++----------------------------- 1 file changed, 7 insertions(+), 43 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index c5eb7ccddc..8eb90909b8 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -397,7 +397,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, @@ -1779,6 +1778,11 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused) /* initialize mirror rule list */ TAILQ_INIT(&pf->mirror_list); + /* 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); @@ -2430,7 +2434,6 @@ 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; @@ -2572,9 +2575,6 @@ 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); - return I40E_SUCCESS; tx_err: @@ -2942,9 +2942,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) { @@ -3012,6 +3009,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; @@ -6814,7 +6813,6 @@ i40e_dev_handle_aq_msg(struct rte_eth_dev *dev) if (!ret) rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, NULL); - break; default: PMD_DRV_LOG(DEBUG, "Request %u is not supported yet", @@ -13132,40 +13130,6 @@ i40e_config_rss_filter(struct i40e_pf *pf, return 0; } -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(i40e_logtype_init, pmd.net.i40e.init, NOTICE); RTE_LOG_REGISTER(i40e_logtype_driver, pmd.net.i40e.driver, NOTICE); #ifdef RTE_LIBRTE_I40E_DEBUG_RX -- 2.39.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-03-15 22:44:50.434530708 +0000 +++ 0014-net-i40e-revert-link-status-check-on-device-start.patch 2023-03-15 22:44:49.559849758 +0000 @@ -1 +1 @@ -From a8ca8edf8c076c765c6d142ab4664a1f61414233 Mon Sep 17 00:00:00 2001 +From dd692f5dde53c2af1dfc50b2d3ffac031953e9e5 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit a8ca8edf8c076c765c6d142ab4664a1f61414233 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -22 +23 @@ -index 7726a89d99..a982e42264 100644 +index c5eb7ccddc..8eb90909b8 100644 @@ -25 +26 @@ -@@ -387,7 +387,6 @@ static int i40e_set_default_mac_addr(struct rte_eth_dev *dev, +@@ -397,7 +397,6 @@ static int i40e_set_default_mac_addr(struct rte_eth_dev *dev, @@ -33,3 +34,3 @@ -@@ -1711,6 +1710,11 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused) - */ - i40e_add_tx_flow_control_drop_filter(pf); +@@ -1779,6 +1778,11 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused) + /* initialize mirror rule list */ + TAILQ_INIT(&pf->mirror_list); @@ -45 +46 @@ -@@ -2328,7 +2332,6 @@ i40e_dev_start(struct rte_eth_dev *dev) +@@ -2430,7 +2434,6 @@ i40e_dev_start(struct rte_eth_dev *dev) @@ -53 +54 @@ -@@ -2467,9 +2470,6 @@ i40e_dev_start(struct rte_eth_dev *dev) +@@ -2572,9 +2575,6 @@ i40e_dev_start(struct rte_eth_dev *dev) @@ -63 +64 @@ -@@ -2809,9 +2809,6 @@ i40e_dev_set_link_down(struct rte_eth_dev *dev) +@@ -2942,9 +2942,6 @@ i40e_dev_set_link_down(struct rte_eth_dev *dev) @@ -73 +74 @@ -@@ -2878,6 +2875,8 @@ static __rte_always_inline void +@@ -3012,6 +3009,8 @@ static __rte_always_inline void @@ -82 +83 @@ -@@ -6738,7 +6737,6 @@ i40e_dev_handle_aq_msg(struct rte_eth_dev *dev) +@@ -6814,7 +6813,6 @@ i40e_dev_handle_aq_msg(struct rte_eth_dev *dev) @@ -90,2 +91,2 @@ -@@ -12123,40 +12121,6 @@ i40e_cloud_filter_qinq_create(struct i40e_pf *pf) - return ret; +@@ -13132,40 +13130,6 @@ i40e_config_rss_filter(struct i40e_pf *pf, + return 0; @@ -128,3 +129,3 @@ - RTE_LOG_REGISTER_SUFFIX(i40e_logtype_init, init, NOTICE); - RTE_LOG_REGISTER_SUFFIX(i40e_logtype_driver, driver, NOTICE); - #ifdef RTE_ETHDEV_DEBUG_RX + RTE_LOG_REGISTER(i40e_logtype_init, pmd.net.i40e.init, NOTICE); + RTE_LOG_REGISTER(i40e_logtype_driver, pmd.net.i40e.driver, NOTICE); + #ifdef RTE_LIBRTE_I40E_DEBUG_RX