patches for DPDK stable branches
 help / color / mirror / Atom feed
* [PATCH 1/2] net/sfc: do not push fast free offload to default TxQ config
@ 2022-02-08 23:26 Ivan Malov
  2022-02-08 23:26 ` [PATCH 2/2] net/sfc: demand Tx fast free offload on ef10 simple datapath Ivan Malov
  2022-02-10 13:33 ` [PATCH 1/2] net/sfc: do not push fast free offload to default TxQ config Ferruh Yigit
  0 siblings, 2 replies; 3+ messages in thread
From: Ivan Malov @ 2022-02-08 23:26 UTC (permalink / raw)
  To: dev; +Cc: stable, Andrew Rybchenko, Andy Moreton, Ferruh Yigit

Doing so is wrong since fast free is an adapter-wide offload.

Technically, the offending commit (see "Fixes" tag) does not
induce failures, however, such started to occur after commit
a4996bd89c42 ("ethdev: new Rx/Tx offloads API") had shown up,
because of the strict offload validation in the generic code.

Fixes: c78d280e88ef ("net/sfc: convert to new Tx offload API")
Cc: stable@dpdk.org

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
---
 drivers/net/sfc/sfc_ethdev.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
index abf7b8d287..b04a05bd9f 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
@@ -94,7 +94,6 @@ sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev);
 	struct sfc_rss *rss = &sas->rss;
 	struct sfc_mae *mae = &sa->mae;
-	uint64_t txq_offloads_def = 0;
 
 	sfc_log_init(sa, "entry");
 
@@ -146,11 +145,6 @@ sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	dev_info->tx_offload_capa = sfc_tx_get_dev_offload_caps(sa) |
 				    dev_info->tx_queue_offload_capa;
 
-	if (dev_info->tx_offload_capa & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE)
-		txq_offloads_def |= RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;
-
-	dev_info->default_txconf.offloads |= txq_offloads_def;
-
 	if (rss->context_type != EFX_RX_SCALE_UNAVAILABLE) {
 		uint64_t rte_hf = 0;
 		unsigned int i;
-- 
2.30.2


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 2/2] net/sfc: demand Tx fast free offload on ef10 simple datapath
  2022-02-08 23:26 [PATCH 1/2] net/sfc: do not push fast free offload to default TxQ config Ivan Malov
@ 2022-02-08 23:26 ` Ivan Malov
  2022-02-10 13:33 ` [PATCH 1/2] net/sfc: do not push fast free offload to default TxQ config Ferruh Yigit
  1 sibling, 0 replies; 3+ messages in thread
From: Ivan Malov @ 2022-02-08 23:26 UTC (permalink / raw)
  To: dev; +Cc: stable, Andrew Rybchenko, Andy Moreton, Ferruh Yigit

Enforce this offload as it is immutable on the said datapath.

Fixes: c78d280e88ef ("net/sfc: convert to new Tx offload API")
Cc: stable@dpdk.org

Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
---
 drivers/net/sfc/sfc_tx.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c
index cd927cf2f7..f376f24f7b 100644
--- a/drivers/net/sfc/sfc_tx.c
+++ b/drivers/net/sfc/sfc_tx.c
@@ -308,6 +308,7 @@ sfc_tx_qinit_info(struct sfc_adapter *sa, sfc_sw_index_t sw_index)
 static int
 sfc_tx_check_mode(struct sfc_adapter *sa, const struct rte_eth_txmode *txmode)
 {
+	uint64_t dev_tx_offload_cap = sfc_tx_get_dev_offload_caps(sa);
 	int rc = 0;
 
 	switch (txmode->mq_mode) {
@@ -319,6 +320,13 @@ sfc_tx_check_mode(struct sfc_adapter *sa, const struct rte_eth_txmode *txmode)
 		rc = EINVAL;
 	}
 
+	if ((dev_tx_offload_cap & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) != 0 &&
+	    (txmode->offloads & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) == 0) {
+		sfc_err(sa, "There is no FAST_FREE flag in the attempted Tx mode configuration");
+		sfc_err(sa, "FAST_FREE is always active as per the current Tx datapath variant");
+		rc = EINVAL;
+	}
+
 	/*
 	 * These features are claimed to be i40e-specific,
 	 * but it does make sense to double-check their absence
-- 
2.30.2


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] net/sfc: do not push fast free offload to default TxQ config
  2022-02-08 23:26 [PATCH 1/2] net/sfc: do not push fast free offload to default TxQ config Ivan Malov
  2022-02-08 23:26 ` [PATCH 2/2] net/sfc: demand Tx fast free offload on ef10 simple datapath Ivan Malov
@ 2022-02-10 13:33 ` Ferruh Yigit
  1 sibling, 0 replies; 3+ messages in thread
From: Ferruh Yigit @ 2022-02-10 13:33 UTC (permalink / raw)
  To: Ivan Malov, dev; +Cc: stable, Andrew Rybchenko, Andy Moreton

On 2/8/2022 11:26 PM, Ivan Malov wrote:
> Doing so is wrong since fast free is an adapter-wide offload.
> 
> Technically, the offending commit (see "Fixes" tag) does not
> induce failures, however, such started to occur after commit
> a4996bd89c42 ("ethdev: new Rx/Tx offloads API") had shown up,
> because of the strict offload validation in the generic code.
> 
> Fixes: c78d280e88ef ("net/sfc: convert to new Tx offload API")
> Cc:stable@dpdk.org
> 
> Signed-off-by: Ivan Malov<ivan.malov@oktetlabs.ru>
> Reviewed-by: Andrew Rybchenko<andrew.rybchenko@oktetlabs.ru>
> Reviewed-by: Andy Moreton<amoreton@xilinx.com>

Series applied to dpdk-next-net/main, thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-02-10 13:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-08 23:26 [PATCH 1/2] net/sfc: do not push fast free offload to default TxQ config Ivan Malov
2022-02-08 23:26 ` [PATCH 2/2] net/sfc: demand Tx fast free offload on ef10 simple datapath Ivan Malov
2022-02-10 13:33 ` [PATCH 1/2] net/sfc: do not push fast free offload to default TxQ config Ferruh Yigit

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).