patch 'net/hns3: fix order of clearing imissed register in PF' has been queued to stable release 21.11.2

Kevin Traynor ktraynor at redhat.com
Wed May 25 18:28:11 CEST 2022


Hi,

FYI, your patch has been queued to stable release 21.11.2

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/30/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/d96ee7bac0d96caa6d53ccc31817273d7b9cb7aa

Thanks.

Kevin

---
>From d96ee7bac0d96caa6d53ccc31817273d7b9cb7aa Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong at huawei.com>
Date: Thu, 5 May 2022 20:27:01 +0800
Subject: [PATCH] net/hns3: fix order of clearing imissed register in PF

[ upstream commit 1a1de9879f58b4fd202ecd481c56ae9777207fe9 ]

Clearing imissed registers in PF hardware depends on the
'drop_stats_mode' in struct hns3_hw. The variable is initialized after
the "hns3_get_configuration". But, in current code, the clearing
operation runs before the function.
So this patch fixes this order. In addition, this patch extracts a
public function to initialize and uninitialize statistics to improve the
maintainability of these codes.

Fixes: 3e9f3042d7c8 ("net/hns3: add imissed packet stats")

Signed-off-by: Huisong Li <lihuisong at huawei.com>
Signed-off-by: Min Hu (Connor) <humin29 at huawei.com>
---
 drivers/net/hns3/hns3_ethdev.c    | 13 +++----------
 drivers/net/hns3/hns3_ethdev_vf.c | 13 +++----------
 drivers/net/hns3/hns3_stats.c     | 27 ++++++++++++++++++++++++---
 drivers/net/hns3/hns3_stats.h     |  5 ++---
 4 files changed, 32 insertions(+), 26 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 2de1325d4b..a33ab1a656 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -4650,11 +4650,4 @@ hns3_init_pf(struct rte_eth_dev *eth_dev)
 	}
 
-	/* Hardware statistics of imissed registers cleared. */
-	ret = hns3_update_imissed_stats(hw, true);
-	if (ret) {
-		hns3_err(hw, "clear imissed stats failed, ret = %d", ret);
-		goto err_cmd_init;
-	}
-
 	hns3_config_all_msix_error(hw, true);
 
@@ -4682,5 +4675,5 @@ hns3_init_pf(struct rte_eth_dev *eth_dev)
 	}
 
-	ret = hns3_tqp_stats_init(hw);
+	ret = hns3_stats_init(hw);
 	if (ret)
 		goto err_get_config;
@@ -4728,5 +4721,5 @@ err_fdir:
 	hns3_uninit_umv_space(hw);
 err_init_hw:
-	hns3_tqp_stats_uninit(hw);
+	hns3_stats_uninit(hw);
 err_get_config:
 	hns3_pf_disable_irq0(hw);
@@ -4762,5 +4755,5 @@ hns3_uninit_pf(struct rte_eth_dev *eth_dev)
 	hns3_fdir_filter_uninit(hns);
 	hns3_uninit_umv_space(hw);
-	hns3_tqp_stats_uninit(hw);
+	hns3_stats_uninit(hw);
 	hns3_config_mac_tnl_int(hw, false);
 	hns3_pf_disable_irq0(hw);
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 3be46c8f0a..c5252035a0 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -1559,15 +1559,8 @@ hns3vf_init_vf(struct rte_eth_dev *eth_dev)
 	}
 
-	ret = hns3_tqp_stats_init(hw);
+	ret = hns3_stats_init(hw);
 	if (ret)
 		goto err_get_config;
 
-	/* Hardware statistics of imissed registers cleared. */
-	ret = hns3_update_imissed_stats(hw, true);
-	if (ret) {
-		hns3_err(hw, "clear imissed stats failed, ret = %d", ret);
-		goto err_set_tc_queue;
-	}
-
 	ret = hns3vf_set_tc_queue_mapping(hns, hw->tqps_num, hw->tqps_num);
 	if (ret) {
@@ -1597,5 +1590,5 @@ hns3vf_init_vf(struct rte_eth_dev *eth_dev)
 
 err_set_tc_queue:
-	hns3_tqp_stats_uninit(hw);
+	hns3_stats_uninit(hw);
 
 err_get_config:
@@ -1628,5 +1621,5 @@ hns3vf_uninit_vf(struct rte_eth_dev *eth_dev)
 	(void)hns3vf_set_promisc_mode(hw, false, false, false);
 	hns3_flow_uninit(eth_dev);
-	hns3_tqp_stats_uninit(hw);
+	hns3_stats_uninit(hw);
 	hns3vf_disable_irq0(hw);
 	rte_intr_disable(pci_dev->intr_handle);
diff --git a/drivers/net/hns3/hns3_stats.c b/drivers/net/hns3/hns3_stats.c
index 806720faff..e4a5dcf2f8 100644
--- a/drivers/net/hns3/hns3_stats.c
+++ b/drivers/net/hns3/hns3_stats.c
@@ -541,5 +541,5 @@ hns3_update_port_tx_ssu_drop_stats(struct hns3_hw *hw)
 }
 
-int
+static int
 hns3_update_imissed_stats(struct hns3_hw *hw, bool is_clear)
 {
@@ -1477,5 +1477,5 @@ hns3_dev_xstats_reset(struct rte_eth_dev *dev)
 }
 
-int
+static int
 hns3_tqp_stats_init(struct hns3_hw *hw)
 {
@@ -1501,5 +1501,5 @@ hns3_tqp_stats_init(struct hns3_hw *hw)
 }
 
-void
+static void
 hns3_tqp_stats_uninit(struct hns3_hw *hw)
 {
@@ -1522,2 +1522,23 @@ hns3_tqp_stats_clear(struct hns3_hw *hw)
 	memset(stats->rcb_tx_ring_pktnum, 0, sizeof(uint64_t) * hw->tqps_num);
 }
+
+int
+hns3_stats_init(struct hns3_hw *hw)
+{
+	int ret;
+
+	/* Hardware statistics of imissed registers cleared. */
+	ret = hns3_update_imissed_stats(hw, true);
+	if (ret) {
+		hns3_err(hw, "clear imissed stats failed, ret = %d", ret);
+		return ret;
+	}
+
+	return hns3_tqp_stats_init(hw);
+}
+
+void
+hns3_stats_uninit(struct hns3_hw *hw)
+{
+	hns3_tqp_stats_uninit(hw);
+}
diff --git a/drivers/net/hns3/hns3_stats.h b/drivers/net/hns3/hns3_stats.h
index c81d351082..e89dc97632 100644
--- a/drivers/net/hns3/hns3_stats.h
+++ b/drivers/net/hns3/hns3_stats.h
@@ -162,7 +162,6 @@ int hns3_dev_xstats_get_names_by_id(struct rte_eth_dev *dev,
 				    uint32_t size);
 int hns3_stats_reset(struct rte_eth_dev *dev);
-int hns3_tqp_stats_init(struct hns3_hw *hw);
-void hns3_tqp_stats_uninit(struct hns3_hw *hw);
-int hns3_update_imissed_stats(struct hns3_hw *hw, bool is_clear);
+int hns3_stats_init(struct hns3_hw *hw);
+void hns3_stats_uninit(struct hns3_hw *hw);
 int hns3_query_mac_stats_reg_num(struct hns3_hw *hw);
 
-- 
2.34.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-05-25 17:26:59.048756960 +0100
+++ 0019-net-hns3-fix-order-of-clearing-imissed-register-in-P.patch	2022-05-25 17:26:58.561828323 +0100
@@ -1 +1 @@
-From 1a1de9879f58b4fd202ecd481c56ae9777207fe9 Mon Sep 17 00:00:00 2001
+From d96ee7bac0d96caa6d53ccc31817273d7b9cb7aa Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1a1de9879f58b4fd202ecd481c56ae9777207fe9 ]
+
@@ -15 +16,0 @@
-Cc: stable at dpdk.org
@@ -27 +28 @@
-index 4e089e682f..5aed7046d8 100644
+index 2de1325d4b..a33ab1a656 100644
@@ -30 +31 @@
-@@ -4623,11 +4623,4 @@ hns3_init_pf(struct rte_eth_dev *eth_dev)
+@@ -4650,11 +4650,4 @@ hns3_init_pf(struct rte_eth_dev *eth_dev)
@@ -42 +43 @@
-@@ -4655,5 +4648,5 @@ hns3_init_pf(struct rte_eth_dev *eth_dev)
+@@ -4682,5 +4675,5 @@ hns3_init_pf(struct rte_eth_dev *eth_dev)
@@ -49 +50 @@
-@@ -4701,5 +4694,5 @@ err_fdir:
+@@ -4728,5 +4721,5 @@ err_fdir:
@@ -56 +57 @@
-@@ -4735,5 +4728,5 @@ hns3_uninit_pf(struct rte_eth_dev *eth_dev)
+@@ -4762,5 +4755,5 @@ hns3_uninit_pf(struct rte_eth_dev *eth_dev)
@@ -64 +65 @@
-index 9091706fe5..9e9fdc4144 100644
+index 3be46c8f0a..c5252035a0 100644
@@ -67 +68 @@
-@@ -1511,15 +1511,8 @@ hns3vf_init_vf(struct rte_eth_dev *eth_dev)
+@@ -1559,15 +1559,8 @@ hns3vf_init_vf(struct rte_eth_dev *eth_dev)
@@ -82 +83 @@
- 	ret = hns3_queue_to_tc_mapping(hw, hw->tqps_num, hw->tqps_num);
+ 	ret = hns3vf_set_tc_queue_mapping(hns, hw->tqps_num, hw->tqps_num);
@@ -84 +85 @@
-@@ -1549,5 +1542,5 @@ hns3vf_init_vf(struct rte_eth_dev *eth_dev)
+@@ -1597,5 +1590,5 @@ hns3vf_init_vf(struct rte_eth_dev *eth_dev)
@@ -91 +92 @@
-@@ -1580,5 +1573,5 @@ hns3vf_uninit_vf(struct rte_eth_dev *eth_dev)
+@@ -1628,5 +1621,5 @@ hns3vf_uninit_vf(struct rte_eth_dev *eth_dev)



More information about the stable mailing list