[dpdk-stable] patch 'net/ice/base: fix RSS interference' has been queued to stable release 19.11.4
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Thu Aug 6 11:53:53 CEST 2020
Hi,
FYI, your patch has been queued to stable release 19.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 08/08/20. 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.
Thanks.
Luca Boccassi
---
>From 3e9a631e2fbb65ff274e26e3c50acd4fad49003b Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang at intel.com>
Date: Sat, 25 Jul 2020 20:14:24 +0800
Subject: [PATCH] net/ice/base: fix RSS interference
[ upstream commit 58f58cfe709cf167f9684e814cdbc8ab7535a798 ]
A new symmetric RSS rule may force another asymmetric rule to be
symmetric, vice versa. The reason is due to the flow engine will
try to reuse the existing profile if the input set matches with the
new rule. The fix is to disable this optimization for RSS since we
are not at the situation as profile shortage.
Fixes: ddae0440353f ("net/ice/base: enable symmetric hash for RSS")
Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
Tested-by: Nannan Lu <nannan.lu at intel.com>
Acked-by: Jeff Guo <jia.guo at intel.com>
---
drivers/net/ice/base/ice_flex_pipe.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/ice/base/ice_flex_pipe.c b/drivers/net/ice/base/ice_flex_pipe.c
index 47adfd07a..bf5a25d15 100644
--- a/drivers/net/ice/base/ice_flex_pipe.c
+++ b/drivers/net/ice/base/ice_flex_pipe.c
@@ -2683,6 +2683,12 @@ ice_find_prof_id_with_mask(struct ice_hw *hw, enum ice_block blk,
struct ice_es *es = &hw->blk[blk].es;
u16 i;
+ /* For FD and RSS, we don't want to re-use an existed profile with the
+ * same field vector and mask. This will cause rule interference.
+ */
+ if (blk == ICE_BLK_FD || blk == ICE_BLK_RSS)
+ return ICE_ERR_DOES_NOT_EXIST;
+
for (i = 0; i < es->count; i++) {
u16 off = i * es->fvw;
--
2.20.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2020-08-06 10:53:16.787685188 +0100
+++ 0025-net-ice-base-fix-RSS-interference.patch 2020-08-06 10:53:15.812597639 +0100
@@ -1,8 +1,10 @@
-From 58f58cfe709cf167f9684e814cdbc8ab7535a798 Mon Sep 17 00:00:00 2001
+From 3e9a631e2fbb65ff274e26e3c50acd4fad49003b Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang at intel.com>
Date: Sat, 25 Jul 2020 20:14:24 +0800
Subject: [PATCH] net/ice/base: fix RSS interference
+[ upstream commit 58f58cfe709cf167f9684e814cdbc8ab7535a798 ]
+
A new symmetric RSS rule may force another asymmetric rule to be
symmetric, vice versa. The reason is due to the flow engine will
try to reuse the existing profile if the input set matches with the
@@ -10,33 +12,31 @@
are not at the situation as profile shortage.
Fixes: ddae0440353f ("net/ice/base: enable symmetric hash for RSS")
-Cc: stable at dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
Tested-by: Nannan Lu <nannan.lu at intel.com>
Acked-by: Jeff Guo <jia.guo at intel.com>
---
- drivers/net/ice/base/ice_flex_pipe.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
+ drivers/net/ice/base/ice_flex_pipe.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
diff --git a/drivers/net/ice/base/ice_flex_pipe.c b/drivers/net/ice/base/ice_flex_pipe.c
-index 284569464..999ad6be3 100644
+index 47adfd07a..bf5a25d15 100644
--- a/drivers/net/ice/base/ice_flex_pipe.c
+++ b/drivers/net/ice/base/ice_flex_pipe.c
-@@ -2808,10 +2808,10 @@ ice_find_prof_id_with_mask(struct ice_hw *hw, enum ice_block blk,
+@@ -2683,6 +2683,12 @@ ice_find_prof_id_with_mask(struct ice_hw *hw, enum ice_block blk,
struct ice_es *es = &hw->blk[blk].es;
- u8 i;
+ u16 i;
-- /* For FD, we don't want to re-use an existed profile with the same
-- * field vector and mask. This will cause rule interference.
+ /* For FD and RSS, we don't want to re-use an existed profile with the
+ * same field vector and mask. This will cause rule interference.
- */
-- if (blk == ICE_BLK_FD)
++ */
+ if (blk == ICE_BLK_FD || blk == ICE_BLK_RSS)
- return ICE_ERR_DOES_NOT_EXIST;
++ return ICE_ERR_DOES_NOT_EXIST;
++
+ for (i = 0; i < es->count; i++) {
+ u16 off = i * es->fvw;
- for (i = 0; i < (u8)es->count; i++) {
--
2.20.1
More information about the stable
mailing list