patch 'net/mlx5: move auxiliary data inline' has been queued to stable release 24.11.4

Kevin Traynor ktraynor at redhat.com
Fri Nov 21 12:21:20 CET 2025


Hi,

FYI, your patch has been queued to stable release 24.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/26/25. 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/bd5f07d5b29c0ab37ad695cddfcce9595e4f9ec5

Thanks.

Kevin

---
>From bd5f07d5b29c0ab37ad695cddfcce9595e4f9ec5 Mon Sep 17 00:00:00 2001
From: Bing Zhao <bingz at nvidia.com>
Date: Mon, 17 Nov 2025 09:27:52 +0200
Subject: [PATCH] net/mlx5: move auxiliary data inline

[ upstream commit aff44ada9abc5831601e7dad5d48d9c6b5493f2d ]

Since auxiliary structure is associated with per rule, it can be
allocated in the same ipool allocation to save the extra overhead
of the *alloc header and the unneeded CPU cycles.

Fixes: 27d171b88031 ("net/mlx5: abstract flow action and enable reconfigure")

Signed-off-by: Bing Zhao <bingz at nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski at nvidia.com>
---
 drivers/net/mlx5/linux/mlx5_os.c | 7 ++++---
 drivers/net/mlx5/mlx5_flow_hw.c  | 9 ++++-----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c
index f8197a22bc..5e07db199e 100644
--- a/drivers/net/mlx5/linux/mlx5_os.c
+++ b/drivers/net/mlx5/linux/mlx5_os.c
@@ -1645,6 +1645,5 @@ err_secondary:
 	mlx5_link_update(eth_dev, 0);
 	/* Watch LSC interrupts between port probe and port start. */
-	priv->sh->port[priv->dev_port - 1].nl_ih_port_id =
-							eth_dev->data->port_id;
+	priv->sh->port[priv->dev_port - 1].nl_ih_port_id = eth_dev->data->port_id;
 	mlx5_set_link_up(eth_dev);
 	for (i = 0; i < MLX5_FLOW_TYPE_MAXI; i++) {
@@ -1653,6 +1652,8 @@ err_secondary:
 			icfg[i].per_core_cache = 0;
 #ifdef HAVE_MLX5_HWS_SUPPORT
-		if (priv->sh->config.dv_flow_en == 2)
+		if (priv->sh->config.dv_flow_en == 2) {
 			icfg[i].size = sizeof(struct rte_flow_hw) + sizeof(struct rte_flow_nt2hws);
+			icfg[i].size += sizeof(struct rte_flow_hw_aux);
+		}
 #endif
 		priv->flows[i] = mlx5_ipool_create(&icfg[i]);
diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index a1274c93f8..14e9f21e24 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -13269,6 +13269,7 @@ static int flow_hw_prepare(struct rte_eth_dev *dev,
 				((uintptr_t)(*flow) + sizeof(struct rte_flow_hw));
 	(*flow)->idx = idx;
-	(*flow)->nt2hws->flow_aux = mlx5_malloc(MLX5_MEM_ZERO, sizeof(struct rte_flow_hw_aux),
-				    RTE_CACHE_LINE_SIZE, rte_dev_numa_node(dev->device));
+	(*flow)->nt2hws->flow_aux = (struct rte_flow_hw_aux *)
+		((uintptr_t)((*flow)->nt2hws) + sizeof(struct rte_flow_nt2hws));
+
 	if (!(*flow)->nt2hws->flow_aux)
 		return rte_flow_error_set(error, ENOMEM,
@@ -13900,8 +13901,6 @@ flow_hw_destroy(struct rte_eth_dev *dev, struct rte_flow_hw *flow)
 	  * , same as for DV.
 	  */
-	if (flow->nt2hws->flow_aux) {
-		mlx5_free(flow->nt2hws->flow_aux);
+	if (flow->nt2hws->flow_aux)
 		flow->nt2hws->flow_aux = NULL;
-	}
 	if (flow->nt2hws->rix_encap_decap) {
 		flow_encap_decap_resource_release(dev, flow->nt2hws->rix_encap_decap);
-- 
2.51.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-11-21 11:05:12.574423317 +0000
+++ 0096-net-mlx5-move-auxiliary-data-inline.patch	2025-11-21 11:05:09.654201984 +0000
@@ -1 +1 @@
-From aff44ada9abc5831601e7dad5d48d9c6b5493f2d Mon Sep 17 00:00:00 2001
+From bd5f07d5b29c0ab37ad695cddfcce9595e4f9ec5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit aff44ada9abc5831601e7dad5d48d9c6b5493f2d ]
+
@@ -11 +12,0 @@
-Cc: stable at dpdk.org
@@ -21 +22 @@
-index e642e2664e..7f73183bb1 100644
+index f8197a22bc..5e07db199e 100644
@@ -24 +25 @@
-@@ -1644,6 +1644,5 @@ err_secondary:
+@@ -1645,6 +1645,5 @@ err_secondary:
@@ -32 +33 @@
-@@ -1652,6 +1651,8 @@ err_secondary:
+@@ -1653,6 +1652,8 @@ err_secondary:
@@ -43 +44 @@
-index f8995b53cc..c41b99746f 100644
+index a1274c93f8..14e9f21e24 100644
@@ -46 +47 @@
-@@ -13501,6 +13501,7 @@ static int flow_hw_prepare(struct rte_eth_dev *dev,
+@@ -13269,6 +13269,7 @@ static int flow_hw_prepare(struct rte_eth_dev *dev,
@@ -56 +57 @@
-@@ -14153,8 +14154,6 @@ flow_hw_destroy(struct rte_eth_dev *dev, struct rte_flow_hw *flow)
+@@ -13900,8 +13901,6 @@ flow_hw_destroy(struct rte_eth_dev *dev, struct rte_flow_hw *flow)



More information about the stable mailing list