patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Kevin Traynor <ktraynor@redhat.com>
To: Bing Zhao <bingz@nvidia.com>
Cc: Ori Kam <orika@nvidia.com>, dpdk stable <stable@dpdk.org>
Subject: patch 'net/mlx5: fix age position in hairpin split' has been queued to stable release 21.11.7
Date: Thu,  4 Apr 2024 10:51:40 +0100	[thread overview]
Message-ID: <20240404095155.155427-10-ktraynor@redhat.com> (raw)
In-Reply-To: <20240404095155.155427-1-ktraynor@redhat.com>

Hi,

FYI, your patch has been queued to stable release 21.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 04/09/24. 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/165b252b21bdc04bbaac67f4ad76e36f9e16cfce

Thanks.

Kevin

---
From 165b252b21bdc04bbaac67f4ad76e36f9e16cfce Mon Sep 17 00:00:00 2001
From: Bing Zhao <bingz@nvidia.com>
Date: Thu, 7 Mar 2024 10:09:24 +0200
Subject: [PATCH] net/mlx5: fix age position in hairpin split

[ upstream commit 4c89815eab7471b98388dc958b95777d341f05fc ]

When splitting a hairpin rule implicitly, the count action will
be on either Tx or Rx subflow based on the encapsulation checking.

Once there is a flow rule with both count and age action, one counter
will be reused. If there is only age action and the ASO flow hit is
supported, the flow hit will be chosen instead of a counter.

In the previous flow splitting, the age would always be in the Rx
part, while the count would be on the Tx part when there is an encap.

Before this commit, 2 issues can be observed with a hairpin split:
  1. On the root table, one counter was used on both Rx and Tx parts
     for age and count actions. Then one ingress packet will be
     counted twice.
  2. On the non-root table, an extra ASO flow hit was used on the Rx
     part. This would cause some overhead.

The age and count actions should be in the same subflow instead of 2.

Fixes: daed4b6e3db2 ("net/mlx5: use aging by counter when counter exists")

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.c    | 1 +
 drivers/net/mlx5/mlx5_flow_dv.c | 3 +--
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
index 6399d93b93..533cc13f2a 100644
--- a/drivers/net/mlx5/mlx5_flow.c
+++ b/drivers/net/mlx5/mlx5_flow.c
@@ -4760,4 +4760,5 @@ flow_hairpin_split(struct rte_eth_dev *dev,
 			break;
 		case RTE_FLOW_ACTION_TYPE_COUNT:
+		case RTE_FLOW_ACTION_TYPE_AGE:
 			if (encap) {
 				rte_memcpy(actions_tx, actions,
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index e3132995a3..1bf9517638 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -17682,6 +17682,5 @@ flow_dv_get_aged_flows(struct rte_eth_dev *dev,
 		nb_flows++;
 		if (nb_contexts) {
-			context[nb_flows - 1] =
-						act->age_params.context;
+			context[nb_flows - 1] = act->age_params.context;
 			if (!(--nb_contexts))
 				break;
-- 
2.44.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2024-04-04 10:49:34.249701898 +0100
+++ 0010-net-mlx5-fix-age-position-in-hairpin-split.patch	2024-04-04 10:49:33.737457703 +0100
@@ -1 +1 @@
-From 4c89815eab7471b98388dc958b95777d341f05fc Mon Sep 17 00:00:00 2001
+From 165b252b21bdc04bbaac67f4ad76e36f9e16cfce Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4c89815eab7471b98388dc958b95777d341f05fc ]
+
@@ -26 +27,0 @@
-Cc: stable@dpdk.org
@@ -36 +37 @@
-index 6484874c35..f31fdfbf3d 100644
+index 6399d93b93..533cc13f2a 100644
@@ -39 +40 @@
-@@ -5400,4 +5400,5 @@ flow_hairpin_split(struct rte_eth_dev *dev,
+@@ -4760,4 +4760,5 @@ flow_hairpin_split(struct rte_eth_dev *dev,
@@ -46 +47 @@
-index 80239bebee..4badde1a9a 100644
+index e3132995a3..1bf9517638 100644
@@ -49 +50 @@
-@@ -19362,6 +19362,5 @@ flow_dv_get_aged_flows(struct rte_eth_dev *dev,
+@@ -17682,6 +17682,5 @@ flow_dv_get_aged_flows(struct rte_eth_dev *dev,


  parent reply	other threads:[~2024-04-04  9:52 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-04  9:51 patch 'net/hns3: enable PFC for all user priorities' " Kevin Traynor
2024-04-04  9:51 ` patch 'doc: add traffic manager in features table' " Kevin Traynor
2024-04-04  9:51 ` patch 'doc: add link speeds configuration " Kevin Traynor
2024-04-04  9:51 ` patch 'net/ena/base: limit exponential backoff' " Kevin Traynor
2024-04-04  9:51 ` patch 'net/ena/base: restructure interrupt handling' " Kevin Traynor
2024-04-04  9:51 ` patch 'app/testpmd: fix --stats-period option check' " Kevin Traynor
2024-04-04  9:51 ` patch 'net/hns3: support new device' " Kevin Traynor
2024-04-04  9:51 ` patch 'doc: update link to Windows DevX in mlx5 guide' " Kevin Traynor
2024-04-04  9:51 ` patch 'net/mlx5: prevent ioctl failure log flooding' " Kevin Traynor
2024-04-04  9:51 ` Kevin Traynor [this message]
2024-04-04  9:51 ` patch 'net/mlx5: fix drop action release timing' " Kevin Traynor
2024-04-04  9:51 ` patch 'net/mlx5: fix warning about copy length' " Kevin Traynor
2024-04-04  9:51 ` patch 'net/bnxt: fix number of Tx queues being created' " Kevin Traynor
2024-04-04 13:52   ` Kishore Padmanabha
2024-04-04  9:51 ` patch 'doc: fix default IP fragments maximum in programmer guide' " Kevin Traynor
2024-04-04  9:51 ` patch 'net/vmxnet3: ignore Rx queue interrupt setup on FreeBSD' " Kevin Traynor
2024-04-04  9:51 ` patch 'doc: fix typo in profiling guide' " Kevin Traynor
2024-04-04  9:51 ` patch 'doc: fix typo in packet framework " Kevin Traynor
2024-04-04  9:51 ` patch 'test/power: fix typo in error message' " Kevin Traynor
2024-04-04  9:51 ` patch 'test/cfgfile: fix typo in error messages' " Kevin Traynor
2024-04-04  9:51 ` patch 'examples/ipsec-secgw: fix typo in error message' " Kevin Traynor
2024-04-04  9:51 ` patch 'net/nfp: fix resource leak for PF initialization' " Kevin Traynor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240404095155.155427-10-ktraynor@redhat.com \
    --to=ktraynor@redhat.com \
    --cc=bingz@nvidia.com \
    --cc=orika@nvidia.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).