[dpdk-stable] patch 'net/ixgbe: fix performance drop caused by MACsec' has been queued to LTS release 18.11.6
Kevin Traynor
ktraynor at redhat.com
Wed Dec 11 22:25:57 CET 2019
Hi,
FYI, your patch has been queued to LTS release 18.11.6
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/17/19. 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-queue
This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/f4d7ffe6e960c5edafc4073d724f6ad5d3247800
Thanks.
Kevin.
---
>From f4d7ffe6e960c5edafc4073d724f6ad5d3247800 Mon Sep 17 00:00:00 2001
From: Shougang Wang <shougangx.wang at intel.com>
Date: Thu, 21 Nov 2019 07:32:05 +0000
Subject: [PATCH] net/ixgbe: fix performance drop caused by MACsec
[ upstream commit 54aedfe1c02119337485388263c2782d6d39541d ]
Currently macsec offload will be enabled every time when device starts.
It will cause QoS sample application performance drop issue. This patch
adds check in dev_start ops to make sure macsec is only enabled when
required explicitly.
Fixes: 50556c88104c ("net/ixgbe: fix MACsec setting")
Signed-off-by: Shougang Wang <shougangx.wang at intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye at intel.com>
---
drivers/net/ixgbe/ixgbe_ethdev.c | 14 ++++++++------
drivers/net/ixgbe/ixgbe_ethdev.h | 1 +
drivers/net/ixgbe/rte_pmd_ixgbe.c | 1 +
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 1336236ba..3d4e62b5a 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1079,4 +1079,6 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
PMD_INIT_FUNC_TRACE();
+ ixgbe_dev_macsec_setting_reset(eth_dev);
+
eth_dev->dev_ops = &ixgbe_eth_dev_ops;
eth_dev->rx_pkt_burst = &ixgbe_recv_pkts;
@@ -2591,5 +2593,5 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
struct ixgbe_tm_conf *tm_conf =
IXGBE_DEV_PRIVATE_TO_TM_CONF(dev->data->dev_private);
- struct ixgbe_macsec_setting *macsec_ctrl =
+ struct ixgbe_macsec_setting *macsec_setting =
IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data->dev_private);
@@ -2833,6 +2835,7 @@ skip_link_setup:
ixgbe_dev_link_update(dev, 0);
- /* setup the macsec ctrl register */
- ixgbe_dev_macsec_register_enable(dev, macsec_ctrl);
+ /* setup the macsec setting register */
+ if (macsec_setting->offload_en)
+ ixgbe_dev_macsec_register_enable(dev, macsec_setting);
return 0;
@@ -2864,7 +2867,4 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
PMD_INIT_FUNC_TRACE();
- /* disable mecsec register */
- ixgbe_dev_macsec_register_disable(dev);
-
rte_eal_alarm_cancel(ixgbe_dev_setup_link_alarm_handler, dev);
@@ -8694,4 +8694,5 @@ ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data->dev_private);
+ macsec->offload_en = macsec_setting->offload_en;
macsec->encrypt_en = macsec_setting->encrypt_en;
macsec->replayprotect_en = macsec_setting->replayprotect_en;
@@ -8704,4 +8705,5 @@ ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev)
IXGBE_DEV_PRIVATE_TO_MACSEC_SETTING(dev->data->dev_private);
+ macsec->offload_en = 0;
macsec->encrypt_en = 0;
macsec->replayprotect_en = 0;
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index 418adfa3d..752d7981e 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -362,4 +362,5 @@ struct rte_flow {
struct ixgbe_macsec_setting {
+ uint8_t offload_en;
uint8_t encrypt_en;
uint8_t replayprotect_en;
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
index 49d538ef1..b946808bc 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
@@ -522,4 +522,5 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)
dev = &rte_eth_devices[port];
+ macsec_setting.offload_en = 1;
macsec_setting.encrypt_en = en;
macsec_setting.replayprotect_en = rp;
--
2.21.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2019-12-11 21:24:13.174219947 +0000
+++ 0005-net-ixgbe-fix-performance-drop-caused-by-MACsec.patch 2019-12-11 21:24:12.568653263 +0000
@@ -1 +1 @@
-From 54aedfe1c02119337485388263c2782d6d39541d Mon Sep 17 00:00:00 2001
+From f4d7ffe6e960c5edafc4073d724f6ad5d3247800 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 54aedfe1c02119337485388263c2782d6d39541d ]
+
@@ -12 +13,0 @@
-Cc: stable at dpdk.org
@@ -23 +24 @@
-index 0084c3335..118bc7475 100644
+index 1336236ba..3d4e62b5a 100644
@@ -26 +27 @@
-@@ -1096,4 +1096,6 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
+@@ -1079,4 +1079,6 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
@@ -33 +34 @@
-@@ -2549,5 +2551,5 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
+@@ -2591,5 +2593,5 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
@@ -40 +41 @@
-@@ -2803,6 +2805,7 @@ skip_link_setup:
+@@ -2833,6 +2835,7 @@ skip_link_setup:
@@ -50 +51 @@
-@@ -2837,7 +2840,4 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
+@@ -2864,7 +2867,4 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
@@ -58 +59 @@
-@@ -8848,4 +8848,5 @@ ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
+@@ -8694,4 +8694,5 @@ ixgbe_dev_macsec_setting_save(struct rte_eth_dev *dev,
@@ -64 +65 @@
-@@ -8858,4 +8859,5 @@ ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev)
+@@ -8704,4 +8705,5 @@ ixgbe_dev_macsec_setting_reset(struct rte_eth_dev *dev)
@@ -71 +72 @@
-index 5da6923a1..76a1b9d18 100644
+index 418adfa3d..752d7981e 100644
@@ -74 +75 @@
-@@ -367,4 +367,5 @@ struct rte_flow {
+@@ -362,4 +362,5 @@ struct rte_flow {
@@ -81 +82 @@
-index 073fe1e23..8bcaded6e 100644
+index 49d538ef1..b946808bc 100644
@@ -84 +85 @@
-@@ -523,4 +523,5 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)
+@@ -522,4 +522,5 @@ rte_pmd_ixgbe_macsec_enable(uint16_t port, uint8_t en, uint8_t rp)
More information about the stable
mailing list