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 526E0A00C2 for ; Thu, 3 Nov 2022 10:33:14 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 488AB4069B; Thu, 3 Nov 2022 10:33:14 +0100 (CET) Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by mails.dpdk.org (Postfix) with ESMTP id 358EE40694 for ; Thu, 3 Nov 2022 10:33:13 +0100 (CET) Received: by mail-wr1-f41.google.com with SMTP id k8so1766991wrh.1 for ; Thu, 03 Nov 2022 02:33:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=h+PhrxrO8qOOR26TF6RMnqeOEfs2iVluw+xc0cpGPbs=; b=d3Eehqh2ZyAdXQm40pCAGX1AT8hDydY/e02F/iG3lAafeKgqIFVSY0ZeDyZk8aH3Qw fs/aOaKS8DZQuoXW/jjmn6q0d+mMlFMBgZxvQCLb7OPis9wwlQPyVl3CqGLkxYtYPlB4 LZwWWKUQ0kLNaGczcgl/aCoyekGeuu/7lw1m/bJZ4w6Abc4dkPOoMSzqp1RGPgjfo76L J4V8m/c9DE/yX9XdwsWIecLBcKn3YSUfszXm3x43fvECfc78Z0a13eL67CFi5b45cKzJ 1NMOz85kjU4s414PntuUw4EM/G7IMsdeEXrwMe3S6uBFNW8EOerSGXgMD5RnwBs3b7cG ViiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=h+PhrxrO8qOOR26TF6RMnqeOEfs2iVluw+xc0cpGPbs=; b=y1wRrva0dx0CNJTFJGQFnHKXA+jcFq/ncCt77hMIIUa/nKwj+kdPipei+djXG/UhLK yZ26ELl+yRPjGo9Fg4sb3mPGajHAwHSzpETeKn3NDF1y89rombv6T2/Lkgj0ZlO/2T5d oFx1JuQfRGwOMHohTv7l31xkqG9WjIPHZQfoQZHBZq0lMbJMsg9iqrMHjMlqjPb9Gqw6 xyfLWl1PbBk5x1ny4+LDKkkbMnhP9bV7NV+dSP6eiEz2RCRyoAKgHEShTWyXl0RJX3ba oScV17onsz04MR8zzmB2Q3zd/Jdj80UB42/8W+LioP3jwFU9h7y+TQ0yej6oy8iunTQ+ D2xQ== X-Gm-Message-State: ACrzQf2gzHwVbpucXvnMwA8nzxmQyoGxaX4RL128jV8wG20llbpefuEH cHFr8rlGUzdnnEyPbnVmbuc= X-Google-Smtp-Source: AMsMyM4MfjpjnV+csiQqC/4ooQPfSmrd7iWnV/Ku6w7kVLIMl/GyYUYFAm/XCTOEcae6j7C0xdND7w== X-Received: by 2002:a5d:6e8e:0:b0:21d:ea5:710f with SMTP id k14-20020a5d6e8e000000b0021d0ea5710fmr18235769wrz.48.1667467992875; Thu, 03 Nov 2022 02:33:12 -0700 (PDT) Received: from localhost ([137.220.119.58]) by smtp.gmail.com with ESMTPSA id bs21-20020a056000071500b00228cd9f6349sm313404wrb.106.2022.11.03.02.33.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Nov 2022 02:33:12 -0700 (PDT) From: luca.boccassi@gmail.com To: Jie Hai Cc: Dongdong Liu , dpdk stable Subject: patch 'net/hns3: fix minimum Tx frame length' has been queued to stable release 20.11.7 Date: Thu, 3 Nov 2022 09:27:49 +0000 Message-Id: <20221103092758.1099402-91-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221103092758.1099402-1-luca.boccassi@gmail.com> References: <20221103092758.1099402-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.7 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/05/22. 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/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/4c5ddfcccb55feb496cec5a3aac64436ad06888c Thanks. Luca Boccassi --- >From 4c5ddfcccb55feb496cec5a3aac64436ad06888c Mon Sep 17 00:00:00 2001 From: Jie Hai Date: Fri, 30 Sep 2022 15:22:20 +0800 Subject: [PATCH] net/hns3: fix minimum Tx frame length [ upstream commit 5f5391d45b87a374de424c62da1d0cba41ac7207 ] When packet length in Tx is less than length hardware supported, the minimum frame length in hns3 is used to do padding to avoid hardware error. Currently, this length is fixed by macro, which is very unfavorable for subsequent hardware evolution. So fix it as firmware report. Fixes: 395b5e08ef8d ("net/hns3: add Tx short frame padding compatibility") Signed-off-by: Jie Hai Signed-off-by: Dongdong Liu --- drivers/net/hns3/hns3_cmd.h | 6 ++++++ drivers/net/hns3/hns3_ethdev.c | 4 +++- drivers/net/hns3/hns3_ethdev.h | 3 +-- drivers/net/hns3/hns3_ethdev_vf.c | 4 +++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/net/hns3/hns3_cmd.h b/drivers/net/hns3/hns3_cmd.h index b7eaf924da..02bb6fa3c8 100644 --- a/drivers/net/hns3/hns3_cmd.h +++ b/drivers/net/hns3/hns3_cmd.h @@ -875,6 +875,12 @@ struct hns3_dev_specs_0_cmd { uint32_t max_tm_rate; }; +struct hns3_dev_specs_1_cmd { + uint8_t rsv0[12]; + uint8_t min_tx_pkt_len; + uint8_t rsv1[11]; +}; + #define HNS3_MAX_TQP_NUM_HIP08_PF 64 #define HNS3_DEFAULT_TX_BUF 0x4000 /* 16k bytes */ #define HNS3_TOTAL_PKT_BUF 0x108000 /* 1.03125M bytes */ diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c index 9cf96f4167..9eaa6f3fa0 100644 --- a/drivers/net/hns3/hns3_ethdev.c +++ b/drivers/net/hns3/hns3_ethdev.c @@ -3022,14 +3022,17 @@ static void hns3_parse_dev_specifications(struct hns3_hw *hw, struct hns3_cmd_desc *desc) { struct hns3_dev_specs_0_cmd *req0; + struct hns3_dev_specs_1_cmd *req1; req0 = (struct hns3_dev_specs_0_cmd *)desc[0].data; + req1 = (struct hns3_dev_specs_1_cmd *)desc[1].data; hw->max_non_tso_bd_num = req0->max_non_tso_bd_num; hw->rss_ind_tbl_size = rte_le_to_cpu_16(req0->rss_ind_tbl_size); hw->rss_key_size = rte_le_to_cpu_16(req0->rss_key_size); hw->max_tm_rate = rte_le_to_cpu_32(req0->max_tm_rate); hw->intr.int_ql_max = rte_le_to_cpu_16(req0->intr_ql_max); + hw->min_tx_pkt_len = req1->min_tx_pkt_len; } static int @@ -3129,7 +3132,6 @@ hns3_get_capability(struct hns3_hw *hw) hw->intr.gl_unit = HNS3_INTR_COALESCE_GL_UINT_1US; hw->tso_mode = HNS3_TSO_HW_CAL_PSEUDO_H_CSUM; hw->vlan_mode = HNS3_HW_SHIFT_AND_DISCARD_MODE; - hw->min_tx_pkt_len = HNS3_HIP09_MIN_TX_PKT_LEN; pf->tqp_config_mode = HNS3_FLEX_MAX_TQP_NUM_MODE; hw->rss_info.ipv6_sctp_offload_supported = true; hw->udp_cksum_mode = HNS3_SPECIAL_PORT_HW_CKSUM_MODE; diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h index fcea844037..03969bccee 100644 --- a/drivers/net/hns3/hns3_ethdev.h +++ b/drivers/net/hns3/hns3_ethdev.h @@ -69,7 +69,6 @@ #define HNS3_DEFAULT_MTU 1500UL #define HNS3_DEFAULT_FRAME_LEN (HNS3_DEFAULT_MTU + HNS3_ETH_OVERHEAD) #define HNS3_HIP08_MIN_TX_PKT_LEN 33 -#define HNS3_HIP09_MIN_TX_PKT_LEN 9 #define HNS3_BITS_PER_BYTE 8 @@ -474,7 +473,7 @@ struct hns3_hw { * The minimum length of the packet supported by hardware in the Tx * direction. */ - uint32_t min_tx_pkt_len; + uint8_t min_tx_pkt_len; struct hns3_queue_intr intr; /* diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c index 17dbf48576..61e6b9a867 100644 --- a/drivers/net/hns3/hns3_ethdev_vf.c +++ b/drivers/net/hns3/hns3_ethdev_vf.c @@ -1146,13 +1146,16 @@ static void hns3vf_parse_dev_specifications(struct hns3_hw *hw, struct hns3_cmd_desc *desc) { struct hns3_dev_specs_0_cmd *req0; + struct hns3_dev_specs_1_cmd *req1; req0 = (struct hns3_dev_specs_0_cmd *)desc[0].data; + req1 = (struct hns3_dev_specs_1_cmd *)desc[1].data; hw->max_non_tso_bd_num = req0->max_non_tso_bd_num; hw->rss_ind_tbl_size = rte_le_to_cpu_16(req0->rss_ind_tbl_size); hw->rss_key_size = rte_le_to_cpu_16(req0->rss_key_size); hw->intr.int_ql_max = rte_le_to_cpu_16(req0->intr_ql_max); + hw->min_tx_pkt_len = req1->min_tx_pkt_len; } static int @@ -1235,7 +1238,6 @@ hns3vf_get_capability(struct hns3_hw *hw) hw->intr.mapping_mode = HNS3_INTR_MAPPING_VEC_ALL; hw->intr.gl_unit = HNS3_INTR_COALESCE_GL_UINT_1US; hw->tso_mode = HNS3_TSO_HW_CAL_PSEUDO_H_CSUM; - hw->min_tx_pkt_len = HNS3_HIP09_MIN_TX_PKT_LEN; hw->rss_info.ipv6_sctp_offload_supported = true; hw->promisc_mode = HNS3_LIMIT_PROMISC_MODE; -- 2.34.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-11-03 09:27:31.051537779 +0000 +++ 0091-net-hns3-fix-minimum-Tx-frame-length.patch 2022-11-03 09:27:25.557426003 +0000 @@ -1 +1 @@ -From 5f5391d45b87a374de424c62da1d0cba41ac7207 Mon Sep 17 00:00:00 2001 +From 4c5ddfcccb55feb496cec5a3aac64436ad06888c Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 5f5391d45b87a374de424c62da1d0cba41ac7207 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -25 +26 @@ -index 8ac8b45819..994dfc48cc 100644 +index b7eaf924da..02bb6fa3c8 100644 @@ -28 +29 @@ -@@ -967,6 +967,12 @@ struct hns3_dev_specs_0_cmd { +@@ -875,6 +875,12 @@ struct hns3_dev_specs_0_cmd { @@ -38,3 +39,3 @@ - struct hns3_query_rpu_cmd { - uint32_t tc_queue_num; - uint32_t rsv1[2]; + #define HNS3_MAX_TQP_NUM_HIP08_PF 64 + #define HNS3_DEFAULT_TX_BUF 0x4000 /* 16k bytes */ + #define HNS3_TOTAL_PKT_BUF 0x108000 /* 1.03125M bytes */ @@ -42 +43 @@ -index 60e933998a..813fcedc6a 100644 +index 9cf96f4167..9eaa6f3fa0 100644 @@ -45 +46 @@ -@@ -2661,14 +2661,17 @@ static void +@@ -3022,14 +3022,17 @@ static void @@ -63 +64,2 @@ -@@ -2763,7 +2766,6 @@ hns3_get_capability(struct hns3_hw *hw) +@@ -3129,7 +3132,6 @@ hns3_get_capability(struct hns3_hw *hw) + hw->intr.gl_unit = HNS3_INTR_COALESCE_GL_UINT_1US; @@ -66 +67,0 @@ - hw->drop_stats_mode = HNS3_PKTS_DROP_STATS_MODE2; @@ -72 +73 @@ -index 9fe9766736..2457754b3d 100644 +index fcea844037..03969bccee 100644 @@ -75 +76 @@ -@@ -75,7 +75,6 @@ +@@ -69,7 +69,6 @@ @@ -83 +84 @@ -@@ -550,7 +549,7 @@ struct hns3_hw { +@@ -474,7 +473,7 @@ struct hns3_hw { @@ -93 +94 @@ -index 446a0cdbc7..c1bbcf42b1 100644 +index 17dbf48576..61e6b9a867 100644 @@ -96 +97 @@ -@@ -701,13 +701,16 @@ static void +@@ -1146,13 +1146,16 @@ static void @@ -113 +114,2 @@ -@@ -846,7 +849,6 @@ hns3vf_get_capability(struct hns3_hw *hw) +@@ -1235,7 +1238,6 @@ hns3vf_get_capability(struct hns3_hw *hw) + hw->intr.mapping_mode = HNS3_INTR_MAPPING_VEC_ALL; @@ -116 +117,0 @@ - hw->drop_stats_mode = HNS3_PKTS_DROP_STATS_MODE2;