[dpdk-stable] patch 'net/mlx5: add Tx scheduling check on queue creation' has been queued to stable release 20.11.3

luca.boccassi at gmail.com luca.boccassi at gmail.com
Tue Aug 3 14:22:01 CEST 2021


Hi,

FYI, your patch has been queued to stable release 20.11.3

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/05/21. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/72f6920480c65b060059431c91f807f0c4a831a2

Thanks.

Luca Boccassi

---
>From 72f6920480c65b060059431c91f807f0c4a831a2 Mon Sep 17 00:00:00 2001
From: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
Date: Thu, 29 Jul 2021 15:26:43 +0300
Subject: [PATCH] net/mlx5: add Tx scheduling check on queue creation

[ upstream commit f17e4b4ffef9ecf2547ad8ee628e94db8f561b2f ]

The send scheduling on timestamp offload requires the Send
Queue (SQ) shares its User Access Region (UAR) with the
pacing Clock Queue. The SQ can be created by mlx5 PMD either
with DevX or with Verbs. If the SQ is being created with
DevX, the dedicated UAR can be specified and all the SQs
share the single UAR. Once SQ is being created with Verbs
the SQ's UAR is allocated by the rdma-core library internally
on its own and there is no UAR sharing. This caused hardware
errors on WAIT WQEs and overall send scheduling malfunction.

If SQs are going to be created with Verbs and the send
scheduling offload is explicitly requested via tx_pp devarg
the device probing is rejected as device configuration
can't satisfy the requirements.

Fixes: 3ec73abeed52 ("net/mlx5/linux: fix Tx queue operations decision")
Fixes: 8f848f32fc24 ("net/mlx5: introduce send scheduling devargs")

Signed-off-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
---
 drivers/net/mlx5/linux/mlx5_os.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c
index 44af6f1c4e..b191fd740e 100644
--- a/drivers/net/mlx5/linux/mlx5_os.c
+++ b/drivers/net/mlx5/linux/mlx5_os.c
@@ -1507,6 +1507,21 @@ err_secondary:
 	} else {
 		priv->obj_ops = ibv_obj_ops;
 	}
+	if (config->tx_pp &&
+	    (priv->config.dv_esw_en ||
+	     priv->obj_ops.txq_obj_new != mlx5_os_txq_obj_new)) {
+		/*
+		 * HAVE_MLX5DV_DEVX_UAR_OFFSET is required to support
+		 * packet pacing and already checked above.
+		 * Hence, we should only make sure the SQs will be created
+		 * with DevX, not with Verbs.
+		 * Verbs allocates the SQ UAR on its own and it can't be shared
+		 * with Clock Queue UAR as required for Tx scheduling.
+		 */
+		DRV_LOG(ERR, "Verbs SQs, UAR can't be shared as required for packet pacing");
+		err = ENODEV;
+		goto error;
+	}
 	priv->drop_queue.hrxq = mlx5_drop_action_create(eth_dev);
 	if (!priv->drop_queue.hrxq)
 		goto error;
-- 
2.30.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-08-03 12:35:08.736171576 +0100
+++ 0012-net-mlx5-add-Tx-scheduling-check-on-queue-creation.patch	2021-08-03 12:35:08.234819128 +0100
@@ -1 +1 @@
-From f17e4b4ffef9ecf2547ad8ee628e94db8f561b2f Mon Sep 17 00:00:00 2001
+From 72f6920480c65b060059431c91f807f0c4a831a2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit f17e4b4ffef9ecf2547ad8ee628e94db8f561b2f ]
+
@@ -23 +24,0 @@
-Cc: stable at dpdk.org
@@ -31 +32 @@
-index 14a3b912cc..8f98cf1716 100644
+index 44af6f1c4e..b191fd740e 100644
@@ -34 +35 @@
-@@ -1778,6 +1778,21 @@ err_secondary:
+@@ -1507,6 +1507,21 @@ err_secondary:


More information about the stable mailing list