patch 'net/ice: fix TM configuration clearing' has been queued to stable release 22.11.4

Xueming Li xuemingl at nvidia.com
Sun Oct 22 16:21:55 CEST 2023


Hi,

FYI, your patch has been queued to stable release 22.11.4

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/15/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://git.dpdk.org/dpdk-stable/log/?h=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=4467e32db96de11e97d01bc0e7cfb34e7d4db791

Thanks.

Xueming Li <xuemingl at nvidia.com>

---
>From 4467e32db96de11e97d01bc0e7cfb34e7d4db791 Mon Sep 17 00:00:00 2001
From: Kaiwen Deng <kaiwenx.deng at intel.com>
Date: Wed, 6 Sep 2023 15:49:30 +0800
Subject: [PATCH] net/ice: fix TM configuration clearing
Cc: Xueming Li <xuemingl at nvidia.com>

[ upstream commit c21a6a3ff6c49965d4373677255058d041dafe96 ]

When the device is stopped, the PMD resets the commit flag so that
we can update the hierarchy configuration. The commit flag is also
used to determine if the hierarchy configuration needs to be cleared.
When the PMD exits, it always stops the device first and also resets
the commit flag result in the hierarchy configuration is not cleared.

This commit changes the PMD to not reset the commit flag when the
device is stopped. And we prevent additional commit when device is
running by only checking the stop flag.

Fixes: f5ec6a3a1987 ("net/ice: fix TM hierarchy commit flag reset")

Signed-off-by: Kaiwen Deng <kaiwenx.deng at intel.com>
Acked-by: Wenjun Wu <wenjun1.wu at intel.com>
---
 drivers/net/ice/ice_dcf_ethdev.c |  2 --
 drivers/net/ice/ice_dcf_sched.c  | 14 ++++++++------
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c
index 7304ea721c..a7d90f46dc 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -671,7 +671,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)
 	struct ice_dcf_adapter *dcf_ad = dev->data->dev_private;
 	struct rte_intr_handle *intr_handle = dev->intr_handle;
 	struct ice_adapter *ad = &dcf_ad->parent;
-	struct ice_dcf_hw *hw = &dcf_ad->real_hw;

 	if (ad->pf.adapter_stopped == 1) {
 		PMD_DRV_LOG(DEBUG, "Port is already stopped");
@@ -698,7 +697,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)

 	dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
 	ad->pf.adapter_stopped = 1;
-	hw->tm_conf.committed = false;

 	return 0;
 }
diff --git a/drivers/net/ice/ice_dcf_sched.c b/drivers/net/ice/ice_dcf_sched.c
index a231c1e60b..b08bc5f1de 100644
--- a/drivers/net/ice/ice_dcf_sched.c
+++ b/drivers/net/ice/ice_dcf_sched.c
@@ -237,6 +237,7 @@ ice_dcf_node_add(struct rte_eth_dev *dev, uint32_t node_id,
 	enum ice_dcf_tm_node_type node_type = ICE_DCF_TM_NODE_TYPE_MAX;
 	struct ice_dcf_tm_shaper_profile *shaper_profile = NULL;
 	struct ice_dcf_adapter *adapter = dev->data->dev_private;
+	struct ice_adapter *ad = &adapter->parent;
 	struct ice_dcf_hw *hw = &adapter->real_hw;
 	struct ice_dcf_tm_node *parent_node;
 	struct ice_dcf_tm_node *tm_node;
@@ -246,10 +247,10 @@ ice_dcf_node_add(struct rte_eth_dev *dev, uint32_t node_id,
 	if (!params || !error)
 		return -EINVAL;

-	/* if already committed */
-	if (hw->tm_conf.committed) {
+	/* if port is running */
+	if (!ad->pf.adapter_stopped) {
 		error->type = RTE_TM_ERROR_TYPE_UNSPECIFIED;
-		error->message = "already committed";
+		error->message = "port is running";
 		return -EINVAL;
 	}

@@ -400,16 +401,17 @@ ice_dcf_node_delete(struct rte_eth_dev *dev, uint32_t node_id,
 {
 	enum ice_dcf_tm_node_type node_type = ICE_DCF_TM_NODE_TYPE_MAX;
 	struct ice_dcf_adapter *adapter = dev->data->dev_private;
+	struct ice_adapter *ad = &adapter->parent;
 	struct ice_dcf_hw *hw = &adapter->real_hw;
 	struct ice_dcf_tm_node *tm_node;

 	if (!error)
 		return -EINVAL;

-	/* if already committed */
-	if (hw->tm_conf.committed) {
+	/* if port is running */
+	if (!ad->pf.adapter_stopped) {
 		error->type = RTE_TM_ERROR_TYPE_UNSPECIFIED;
-		error->message = "already committed";
+		error->message = "port is running";
 		return -EINVAL;
 	}

--
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-10-22 22:17:37.507796100 +0800
+++ 0086-net-ice-fix-TM-configuration-clearing.patch	2023-10-22 22:17:34.326723700 +0800
@@ -1 +1 @@
-From c21a6a3ff6c49965d4373677255058d041dafe96 Mon Sep 17 00:00:00 2001
+From 4467e32db96de11e97d01bc0e7cfb34e7d4db791 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit c21a6a3ff6c49965d4373677255058d041dafe96 ]
@@ -17 +19,0 @@
-Cc: stable at dpdk.org
@@ -27 +29 @@
-index 30ad18d8fc..065ec728c2 100644
+index 7304ea721c..a7d90f46dc 100644
@@ -30 +32 @@
-@@ -670,7 +670,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)
+@@ -671,7 +671,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)
@@ -38 +40 @@
-@@ -697,7 +696,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)
+@@ -698,7 +697,6 @@ ice_dcf_dev_stop(struct rte_eth_dev *dev)


More information about the stable mailing list