All of lore.kernel.org
 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 related	[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 related	[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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.