patch 'compress/mlx5: support out-of-space status' has been queued to stable release 21.11.1

Kevin Traynor ktraynor at redhat.com
Tue Mar 8 15:14:21 CET 2022


Hi,

FYI, your patch has been queued to stable release 21.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/14/22. 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

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/7ea897faaefbaaa1a2b9deedbdc075b2519c87a2

Thanks.

Kevin

---
>From 7ea897faaefbaaa1a2b9deedbdc075b2519c87a2 Mon Sep 17 00:00:00 2001
From: Raja Zidane <rzidane at nvidia.com>
Date: Sun, 27 Feb 2022 16:00:52 +0200
Subject: [PATCH] compress/mlx5: support out-of-space status

[ upstream commit d2781de684dcbd6ba706332a2d93307fd3918c41 ]

When trying to dequeue, an OP may fail due to insufficient
space for the OP output, the compressdev API defines out-of-space
for OP status. The driver can detect out-of-space errors and
report them to the user. Check if hw_error_syndrome specifies
out-of-space and set the OP status accordingly.
Also added an error message for a case of missing B-final flag.

Fixes: f8c97babc9f4 ("compress/mlx5: add data-path functions")

Signed-off-by: Raja Zidane <rzidane at nvidia.com>
Acked-by: Matan Azrad <matan at nvidia.com>
---
 drivers/common/mlx5/mlx5_prm.h        |  5 +++++
 drivers/compress/mlx5/mlx5_compress.c | 13 ++++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h
index b9e39aa717..58aa72df64 100644
--- a/drivers/common/mlx5/mlx5_prm.h
+++ b/drivers/common/mlx5/mlx5_prm.h
@@ -250,4 +250,7 @@
 #define MLX5_DSEG_MAX 63
 
+/* The 32 bit syndrome offset in struct mlx5_err_cqe. */
+#define MLX5_ERROR_CQE_SYNDROME_OFFSET 52
+
 /* The completion mode offset in the WQE control segment line 2. */
 #define MLX5_COMP_MODE_OFFSET 2
@@ -560,4 +563,6 @@ struct mlx5_rdma_write_wqe {
 #define MLX5_GGA_COMP_LOG_DYNAMIC_SIZE_MAX 15u
 #define MLX5_GGA_COMP_LOG_DYNAMIC_SIZE_MIN 0u
+#define MLX5_GGA_COMP_OUT_OF_SPACE_SYNDROME_BE 0x29D0084
+#define MLX5_GGA_COMP_MISSING_BFINAL_SYNDROME_BE 0x29D0011
 
 struct mlx5_wqe_metadata_seg {
diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c
index 82b871bd86..a18ec8a6cf 100644
--- a/drivers/compress/mlx5/mlx5_compress.c
+++ b/drivers/compress/mlx5/mlx5_compress.c
@@ -564,5 +564,16 @@ mlx5_compress_cqe_err_handle(struct mlx5_compress_qp *qp,
 	volatile struct mlx5_gga_compress_opaque *opaq = qp->opaque_mr.addr;
 
-	op->status = RTE_COMP_OP_STATUS_ERROR;
+	volatile uint32_t *synd_word = RTE_PTR_ADD(cqe, MLX5_ERROR_CQE_SYNDROME_OFFSET);
+	switch (*synd_word) {
+	case MLX5_GGA_COMP_OUT_OF_SPACE_SYNDROME_BE:
+		op->status = RTE_COMP_OP_STATUS_OUT_OF_SPACE_TERMINATED;
+		DRV_LOG(DEBUG, "OUT OF SPACE error, output is bigger than dst buffer.");
+		break;
+	case MLX5_GGA_COMP_MISSING_BFINAL_SYNDROME_BE:
+		DRV_LOG(DEBUG, "The last compressed block missed the B-final flag; maybe the compressed data is not complete or garbaged?");
+		/* fallthrough */
+	default:
+		op->status = RTE_COMP_OP_STATUS_ERROR;
+	}
 	op->consumed = 0;
 	op->produced = 0;
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-08 13:55:28.632148633 +0000
+++ 0006-compress-mlx5-support-out-of-space-status.patch	2022-03-08 13:55:28.394314882 +0000
@@ -1 +1 @@
-From d2781de684dcbd6ba706332a2d93307fd3918c41 Mon Sep 17 00:00:00 2001
+From 7ea897faaefbaaa1a2b9deedbdc075b2519c87a2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d2781de684dcbd6ba706332a2d93307fd3918c41 ]
+
@@ -14 +15,0 @@
-Cc: stable at dpdk.org
@@ -24 +25 @@
-index ce3e47059f..44b18225f6 100644
+index b9e39aa717..58aa72df64 100644
@@ -27 +28 @@
-@@ -263,4 +263,7 @@
+@@ -250,4 +250,7 @@
@@ -35 +36 @@
-@@ -582,4 +585,6 @@ struct mlx5_rdma_write_wqe {
+@@ -560,4 +563,6 @@ struct mlx5_rdma_write_wqe {
@@ -43 +44 @@
-index 7a482c3fbb..d64a628c74 100644
+index 82b871bd86..a18ec8a6cf 100644
@@ -46 +47 @@
-@@ -563,5 +563,16 @@ mlx5_compress_cqe_err_handle(struct mlx5_compress_qp *qp,
+@@ -564,5 +564,16 @@ mlx5_compress_cqe_err_handle(struct mlx5_compress_qp *qp,



More information about the stable mailing list