From: Dariusz Sosnowski <dsosnowski@nvidia.com>
To: Thomas Monjalon <thomas@monjalon.net>,
Ferruh Yigit <ferruh.yigit@amd.com>,
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Cc: <dev@dpdk.org>
Subject: [RFC 2/4] ethdev: omit promiscuous config restore if not required
Date: Wed, 18 Sep 2024 11:21:59 +0200 [thread overview]
Message-ID: <20240918092201.33772-3-dsosnowski@nvidia.com> (raw)
In-Reply-To: <20240918092201.33772-1-dsosnowski@nvidia.com>
This patch adds a new device flag - RTE_ETH_DEV_PROMISC_FORCE_RESTORE.
If device driver sets this flag, then it requires that ethdev library
forcefully reapplies promiscuous mode configuration,
after the port is started.
As a result, unnecessary work can be removed from rte_eth_dev_start()
for drivers which apply all available configuration in dev_start()
(such drivers do not set the flag).
If RFC is approved, then the next version of this patch
should set the new flag for all drivers to maintain the same behavior,
until drivers adjust and it can be safely cleared.
Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
---
lib/ethdev/rte_ethdev.c | 8 +++++---
lib/ethdev/rte_ethdev.h | 6 ++++++
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index 362a1883f0..ff08abd566 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -1726,9 +1726,11 @@ eth_dev_config_restore(struct rte_eth_dev *dev,
if (!(*dev_info->dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR))
eth_dev_mac_restore(dev, dev_info);
- ret = eth_dev_promiscuous_restore(dev, port_id);
- if (ret != 0)
- return ret;
+ if (*dev_info->dev_flags & RTE_ETH_DEV_PROMISC_FORCE_RESTORE) {
+ ret = eth_dev_promiscuous_restore(dev, port_id);
+ if (ret != 0)
+ return ret;
+ }
ret = eth_dev_allmulticast_restore(dev, port_id);
if (ret != 0)
diff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h
index 548fada1c7..0fc23fb924 100644
--- a/lib/ethdev/rte_ethdev.h
+++ b/lib/ethdev/rte_ethdev.h
@@ -2120,6 +2120,12 @@ struct rte_eth_dev_owner {
* PMDs filling the queue xstats themselves should not set this flag
*/
#define RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS RTE_BIT32(6)
+/**
+ * If this flag is set, then device driver requires that
+ * ethdev library forcefully reapplies promiscuous mode configuration,
+ * after driver's dev_start() callback is called.
+ */
+#define RTE_ETH_DEV_PROMISC_FORCE_RESTORE RTE_BIT32(7)
/**@}*/
/**
--
2.39.5
next prev parent reply other threads:[~2024-09-18 9:23 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-18 9:21 [RFC 0/4] ethdev: rework config restore Dariusz Sosnowski
2024-09-18 9:21 ` [RFC 1/4] " Dariusz Sosnowski
2024-09-18 9:21 ` Dariusz Sosnowski [this message]
2024-09-18 9:22 ` [RFC 3/4] ethdev: omit all multicast config restore if not required Dariusz Sosnowski
2024-09-18 9:22 ` [RFC 4/4] ethdev: omit MAC address " Dariusz Sosnowski
2024-09-29 23:31 ` [RFC 0/4] ethdev: rework config restore Ferruh Yigit
2024-10-04 19:13 ` Dariusz Sosnowski
2024-10-07 9:27 ` Konstantin Ananyev
2024-10-07 22:56 ` Ferruh Yigit
2024-10-08 17:21 ` Konstantin Ananyev
2024-10-09 1:07 ` Ferruh Yigit
2024-10-09 10:54 ` Konstantin Ananyev
2024-10-09 16:18 ` Dariusz Sosnowski
2024-10-09 23:16 ` Ferruh Yigit
2024-10-10 12:08 ` Dariusz Sosnowski
2024-10-10 12:51 ` Ferruh Yigit
2024-10-10 16:23 ` Dariusz Sosnowski
2024-10-10 17:08 ` Ferruh Yigit
2024-10-10 22:58 ` Konstantin Ananyev
2024-10-11 0:02 ` Ferruh Yigit
2024-10-11 8:23 ` Dariusz Sosnowski
2024-10-11 8:29 ` Konstantin Ananyev
2024-10-11 9:37 ` Dariusz Sosnowski
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=20240918092201.33772-3-dsosnowski@nvidia.com \
--to=dsosnowski@nvidia.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@amd.com \
--cc=thomas@monjalon.net \
/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).