* [dpdk-dev] [PATCH] compress/mlx5: allow partial transformations support
@ 2021-09-03 14:22 Raja Zidane
2021-09-05 14:03 ` [dpdk-dev] [EXT] " Akhil Goyal
2021-09-05 15:57 ` [dpdk-dev] [PATCH V2] " Raja Zidane
0 siblings, 2 replies; 8+ messages in thread
From: Raja Zidane @ 2021-09-03 14:22 UTC (permalink / raw)
To: dev
Currently compress, decompress and dma are allowed only when all 3
capabilities are on.
A case where the user wants decompress offload, if decompress capability
is on but one of compress, dma is off, is not allowed.
Split compress/decompress/dma support check to allow partial
transformations.
Signed-off-by: Raja Zidane <rzidane@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
drivers/compress/mlx5/mlx5_compress.c | 65 ++++++++++++++++++++-------
1 file changed, 49 insertions(+), 16 deletions(-)
diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c
index d65e1e14da..58e6a7cf8d 100644
--- a/drivers/compress/mlx5/mlx5_compress.c
+++ b/drivers/compress/mlx5/mlx5_compress.c
@@ -291,17 +291,46 @@ mlx5_compress_xform_create(struct rte_compressdev *dev,
struct mlx5_compress_xform *xfrm;
uint32_t size;
- if (xform->type == RTE_COMP_COMPRESS && xform->compress.level ==
- RTE_COMP_LEVEL_NONE) {
- DRV_LOG(ERR, "Non-compressed block is not supported.");
- return -ENOTSUP;
- }
- if ((xform->type == RTE_COMP_COMPRESS && xform->compress.hash_algo !=
- RTE_COMP_HASH_ALGO_NONE) || (xform->type == RTE_COMP_DECOMPRESS &&
- xform->decompress.hash_algo != RTE_COMP_HASH_ALGO_NONE)) {
- DRV_LOG(ERR, "SHA is not supported.");
- return -ENOTSUP;
+ switch(xform->type) {
+ case RTE_COMP_COMPRESS:
+ if(xform->compress.algo == RTE_COMP_ALGO_NULL &&
+ !priv->mmo_dma_qp && !priv->mmo_dma_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support DMA operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ }
+ else if(!priv->mmo_comp_qp && !priv->mmo_comp_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support compress operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ }
+ if(xform->compress.level == RTE_COMP_LEVEL_NONE) {
+ DRV_LOG(ERR, "Non-compressed block is not supported.");
+ return -ENOTSUP;
+ }
+ if(xform->compress.hash_algo != RTE_COMP_HASH_ALGO_NONE) {
+ DRV_LOG(ERR, "SHA is not supported.");
+ return -ENOTSUP;
+ }
+ break;
+ case RTE_COMP_DECOMPRESS:
+ if(xform->decompress.algo == RTE_COMP_ALGO_NULL &&
+ !priv->mmo_dma_qp && !priv->mmo_dma_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support DMA operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ }
+ else if(!priv->mmo_decomp_qp && !priv->mmo_decomp_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support decompress operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ }
+ if(xform->compress.hash_algo != RTE_COMP_HASH_ALGO_NONE) {
+ DRV_LOG(ERR, "SHA is not supported.");
+ return -ENOTSUP;
+ }
+ break;
+ default:
+ DRV_LOG(ERR, "Xform type should be compress/decompress");
+ return -ENOTSUP;
}
+
xfrm = rte_zmalloc_socket(__func__, sizeof(*xfrm), 0,
priv->dev_config.socket_id);
if (xfrm == NULL)
@@ -816,12 +845,16 @@ mlx5_compress_dev_probe(struct rte_device *dev)
rte_errno = ENODEV;
return -rte_errno;
}
- if (mlx5_devx_cmd_query_hca_attr(ctx, &att) != 0 ||
- ((att.mmo_compress_sq_en == 0 || att.mmo_decompress_sq_en == 0 ||
- att.mmo_dma_sq_en == 0) && (att.mmo_compress_qp_en == 0 ||
- att.mmo_decompress_qp_en == 0 || att.mmo_dma_qp_en == 0))) {
- DRV_LOG(ERR, "Not enough capabilities to support compress "
- "operations, maybe old FW/OFED version?");
+ if (mlx5_devx_cmd_query_hca_attr(ctx, &att) != 0) {
+ DRV_LOG(ERR, "Failed to query device capabilities");
+ claim_zero(mlx5_glue->close_device(ctx));
+ rte_errno = ENOTSUP;
+ return -ENOTSUP;
+ }
+ if(!att.mmo_decompress_qp_en && !att.mmo_decompress_sq_en
+ && !att.mmo_compress_qp_en && !att.mmo_compress_sq_en
+ && !att.mmo_dma_qp_en && !att.mmo_dma_sq_en) {
+ DRV_LOG(ERR, "Not enough capabilities to support compress operations, maybe old FW/OFED version?");
claim_zero(mlx5_glue->close_device(ctx));
rte_errno = ENOTSUP;
return -ENOTSUP;
--
2.17.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [EXT] [PATCH] compress/mlx5: allow partial transformations support
2021-09-03 14:22 [dpdk-dev] [PATCH] compress/mlx5: allow partial transformations support Raja Zidane
@ 2021-09-05 14:03 ` Akhil Goyal
2021-09-05 15:57 ` [dpdk-dev] [PATCH V2] " Raja Zidane
1 sibling, 0 replies; 8+ messages in thread
From: Akhil Goyal @ 2021-09-05 14:03 UTC (permalink / raw)
To: Raja Zidane, dev
> Currently compress, decompress and dma are allowed only when all 3
> capabilities are on.
> A case where the user wants decompress offload, if decompress capability
> is on but one of compress, dma is off, is not allowed.
> Split compress/decompress/dma support check to allow partial
> transformations.
>
> Signed-off-by: Raja Zidane <rzidane@nvidia.com>
> Acked-by: Matan Azrad <matan@nvidia.com>
> ---
Please fix check-patch issues.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH V2] compress/mlx5: allow partial transformations support
2021-09-03 14:22 [dpdk-dev] [PATCH] compress/mlx5: allow partial transformations support Raja Zidane
2021-09-05 14:03 ` [dpdk-dev] [EXT] " Akhil Goyal
@ 2021-09-05 15:57 ` Raja Zidane
2021-09-06 19:59 ` [dpdk-dev] [EXT] " Akhil Goyal
2021-09-15 0:12 ` [dpdk-dev] [PATCH V3] " Raja Zidane
1 sibling, 2 replies; 8+ messages in thread
From: Raja Zidane @ 2021-09-05 15:57 UTC (permalink / raw)
To: dev
Currently compress, decompress and dma are allowed only when all 3
capabilities are on.
A case where the user wants decompress offload, if decompress capability
is on but one of compress, dma is off, is not allowed.
Split compress/decompress/dma support check to allow partial
transformations.
V2: fix checkpatches errors.
Signed-off-by: Raja Zidane <rzidane@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
drivers/compress/mlx5/mlx5_compress.c | 61 ++++++++++++++++++++-------
1 file changed, 46 insertions(+), 15 deletions(-)
diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c
index d65e1e14da..1eb0f45b98 100644
--- a/drivers/compress/mlx5/mlx5_compress.c
+++ b/drivers/compress/mlx5/mlx5_compress.c
@@ -291,17 +291,44 @@ mlx5_compress_xform_create(struct rte_compressdev *dev,
struct mlx5_compress_xform *xfrm;
uint32_t size;
- if (xform->type == RTE_COMP_COMPRESS && xform->compress.level ==
- RTE_COMP_LEVEL_NONE) {
- DRV_LOG(ERR, "Non-compressed block is not supported.");
- return -ENOTSUP;
- }
- if ((xform->type == RTE_COMP_COMPRESS && xform->compress.hash_algo !=
- RTE_COMP_HASH_ALGO_NONE) || (xform->type == RTE_COMP_DECOMPRESS &&
- xform->decompress.hash_algo != RTE_COMP_HASH_ALGO_NONE)) {
- DRV_LOG(ERR, "SHA is not supported.");
+ switch (xform->type) {
+ case RTE_COMP_COMPRESS:
+ if (xform->compress.algo == RTE_COMP_ALGO_NULL &&
+ !priv->mmo_dma_qp && !priv->mmo_dma_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support DMA operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ } else if (!priv->mmo_comp_qp && !priv->mmo_comp_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support compress operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ }
+ if (xform->compress.level == RTE_COMP_LEVEL_NONE) {
+ DRV_LOG(ERR, "Non-compressed block is not supported.");
+ return -ENOTSUP;
+ }
+ if (xform->compress.hash_algo != RTE_COMP_HASH_ALGO_NONE) {
+ DRV_LOG(ERR, "SHA is not supported.");
+ return -ENOTSUP;
+ }
+ break;
+ case RTE_COMP_DECOMPRESS:
+ if (xform->decompress.algo == RTE_COMP_ALGO_NULL &&
+ !priv->mmo_dma_qp && !priv->mmo_dma_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support DMA operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ } else if (!priv->mmo_decomp_qp && !priv->mmo_decomp_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support decompress operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ }
+ if (xform->compress.hash_algo != RTE_COMP_HASH_ALGO_NONE) {
+ DRV_LOG(ERR, "SHA is not supported.");
+ return -ENOTSUP;
+ }
+ break;
+ default:
+ DRV_LOG(ERR, "Xform type should be compress/decompress");
return -ENOTSUP;
}
+
xfrm = rte_zmalloc_socket(__func__, sizeof(*xfrm), 0,
priv->dev_config.socket_id);
if (xfrm == NULL)
@@ -816,12 +843,16 @@ mlx5_compress_dev_probe(struct rte_device *dev)
rte_errno = ENODEV;
return -rte_errno;
}
- if (mlx5_devx_cmd_query_hca_attr(ctx, &att) != 0 ||
- ((att.mmo_compress_sq_en == 0 || att.mmo_decompress_sq_en == 0 ||
- att.mmo_dma_sq_en == 0) && (att.mmo_compress_qp_en == 0 ||
- att.mmo_decompress_qp_en == 0 || att.mmo_dma_qp_en == 0))) {
- DRV_LOG(ERR, "Not enough capabilities to support compress "
- "operations, maybe old FW/OFED version?");
+ if (mlx5_devx_cmd_query_hca_attr(ctx, &att) != 0) {
+ DRV_LOG(ERR, "Failed to query device capabilities");
+ claim_zero(mlx5_glue->close_device(ctx));
+ rte_errno = ENOTSUP;
+ return -ENOTSUP;
+ }
+ if (!att.mmo_decompress_qp_en && !att.mmo_decompress_sq_en
+ && !att.mmo_compress_qp_en && !att.mmo_compress_sq_en
+ && !att.mmo_dma_qp_en && !att.mmo_dma_sq_en) {
+ DRV_LOG(ERR, "Not enough capabilities to support compress operations, maybe old FW/OFED version?");
claim_zero(mlx5_glue->close_device(ctx));
rte_errno = ENOTSUP;
return -ENOTSUP;
--
2.17.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [EXT] [PATCH V2] compress/mlx5: allow partial transformations support
2021-09-05 15:57 ` [dpdk-dev] [PATCH V2] " Raja Zidane
@ 2021-09-06 19:59 ` Akhil Goyal
2021-09-15 0:12 ` [dpdk-dev] [PATCH V3] " Raja Zidane
1 sibling, 0 replies; 8+ messages in thread
From: Akhil Goyal @ 2021-09-06 19:59 UTC (permalink / raw)
To: Raja Zidane, dev
> ----------------------------------------------------------------------
> Currently compress, decompress and dma are allowed only when all 3
> capabilities are on.
> A case where the user wants decompress offload, if decompress capability
> is on but one of compress, dma is off, is not allowed.
> Split compress/decompress/dma support check to allow partial
> transformations.
>
> V2: fix checkpatches errors.
>
> Signed-off-by: Raja Zidane <rzidane@nvidia.com>
> Acked-by: Matan Azrad <matan@nvidia.com>
> ---
Patch does not apply.. Is there some dependent patch?
^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH V3] compress/mlx5: allow partial transformations support
2021-09-05 15:57 ` [dpdk-dev] [PATCH V2] " Raja Zidane
2021-09-06 19:59 ` [dpdk-dev] [EXT] " Akhil Goyal
@ 2021-09-15 0:12 ` Raja Zidane
2021-10-05 13:13 ` [dpdk-dev] [EXT] " Akhil Goyal
1 sibling, 1 reply; 8+ messages in thread
From: Raja Zidane @ 2021-09-15 0:12 UTC (permalink / raw)
To: dev
Currently compress, decompress and dma are allowed only when all 3
capabilities are on.
A case where the user wants decompress offload, if decompress capability
is on but one of compress, dma is off, is not allowed.
Split compress/decompress/dma support check to allow partial
transformations.
V2: fix checkpatch errors
V3: rebase.
---mlx5: replaced hardware queue object
Signed-off-by: Raja Zidane <rzidane@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
drivers/compress/mlx5/mlx5_compress.c | 61 ++++++++++++++++++++-------
1 file changed, 46 insertions(+), 15 deletions(-)
diff --git a/drivers/compress/mlx5/mlx5_compress.c b/drivers/compress/mlx5/mlx5_compress.c
index 5c5aa87a18..e94e8fb0c6 100644
--- a/drivers/compress/mlx5/mlx5_compress.c
+++ b/drivers/compress/mlx5/mlx5_compress.c
@@ -291,17 +291,44 @@ mlx5_compress_xform_create(struct rte_compressdev *dev,
struct mlx5_compress_xform *xfrm;
uint32_t size;
- if (xform->type == RTE_COMP_COMPRESS && xform->compress.level ==
- RTE_COMP_LEVEL_NONE) {
- DRV_LOG(ERR, "Non-compressed block is not supported.");
- return -ENOTSUP;
- }
- if ((xform->type == RTE_COMP_COMPRESS && xform->compress.hash_algo !=
- RTE_COMP_HASH_ALGO_NONE) || (xform->type == RTE_COMP_DECOMPRESS &&
- xform->decompress.hash_algo != RTE_COMP_HASH_ALGO_NONE)) {
- DRV_LOG(ERR, "SHA is not supported.");
+ switch (xform->type) {
+ case RTE_COMP_COMPRESS:
+ if (xform->compress.algo == RTE_COMP_ALGO_NULL &&
+ !priv->mmo_dma_qp && !priv->mmo_dma_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support DMA operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ } else if (!priv->mmo_comp_qp && !priv->mmo_comp_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support compress operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ }
+ if (xform->compress.level == RTE_COMP_LEVEL_NONE) {
+ DRV_LOG(ERR, "Non-compressed block is not supported.");
+ return -ENOTSUP;
+ }
+ if (xform->compress.hash_algo != RTE_COMP_HASH_ALGO_NONE) {
+ DRV_LOG(ERR, "SHA is not supported.");
+ return -ENOTSUP;
+ }
+ break;
+ case RTE_COMP_DECOMPRESS:
+ if (xform->decompress.algo == RTE_COMP_ALGO_NULL &&
+ !priv->mmo_dma_qp && !priv->mmo_dma_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support DMA operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ } else if (!priv->mmo_decomp_qp && !priv->mmo_decomp_sq) {
+ DRV_LOG(ERR, "Not enough capabilities to support decompress operation, maybe old FW/OFED version?");
+ return -ENOTSUP;
+ }
+ if (xform->compress.hash_algo != RTE_COMP_HASH_ALGO_NONE) {
+ DRV_LOG(ERR, "SHA is not supported.");
+ return -ENOTSUP;
+ }
+ break;
+ default:
+ DRV_LOG(ERR, "Xform type should be compress/decompress");
return -ENOTSUP;
}
+
xfrm = rte_zmalloc_socket(__func__, sizeof(*xfrm), 0,
priv->dev_config.socket_id);
if (xfrm == NULL)
@@ -816,12 +843,16 @@ mlx5_compress_dev_probe(struct rte_device *dev)
rte_errno = ENODEV;
return -rte_errno;
}
- if (mlx5_devx_cmd_query_hca_attr(ctx, &att) != 0 ||
- ((att.mmo_compress_sq_en == 0 || att.mmo_decompress_sq_en == 0 ||
- att.mmo_dma_sq_en == 0) && (att.mmo_compress_qp_en == 0 ||
- att.mmo_decompress_qp_en == 0 || att.mmo_dma_qp_en == 0))) {
- DRV_LOG(ERR, "Not enough capabilities to support compress "
- "operations, maybe old FW/OFED version?");
+ if (mlx5_devx_cmd_query_hca_attr(ctx, &att) != 0) {
+ DRV_LOG(ERR, "Failed to query device capabilities");
+ claim_zero(mlx5_glue->close_device(ctx));
+ rte_errno = ENOTSUP;
+ return -ENOTSUP;
+ }
+ if (!att.mmo_decompress_qp_en && !att.mmo_decompress_sq_en
+ && !att.mmo_compress_qp_en && !att.mmo_compress_sq_en
+ && !att.mmo_dma_qp_en && !att.mmo_dma_sq_en) {
+ DRV_LOG(ERR, "Not enough capabilities to support compress operations, maybe old FW/OFED version?");
claim_zero(mlx5_glue->close_device(ctx));
rte_errno = ENOTSUP;
return -ENOTSUP;
--
2.17.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [EXT] [PATCH V3] compress/mlx5: allow partial transformations support
2021-09-15 0:12 ` [dpdk-dev] [PATCH V3] " Raja Zidane
@ 2021-10-05 13:13 ` Akhil Goyal
2021-10-19 9:07 ` Matan Azrad
0 siblings, 1 reply; 8+ messages in thread
From: Akhil Goyal @ 2021-10-05 13:13 UTC (permalink / raw)
To: Raja Zidane, dev; +Cc: thomas
> Currently compress, decompress and dma are allowed only when all 3
> capabilities are on.
> A case where the user wants decompress offload, if decompress capability
> is on but one of compress, dma is off, is not allowed.
> Split compress/decompress/dma support check to allow partial
> transformations.
>
> V2: fix checkpatch errors
> V3: rebase.
>
> ---mlx5: replaced hardware queue object
>
> Signed-off-by: Raja Zidane <rzidane@nvidia.com>
> Acked-by: Matan Azrad <matan@nvidia.com>
> ---
This patch does not apply.
When I see in patchworks, there is another series which include this patch.
But that is also superseded and the latest series does not have this patch.
Not sure what is happening here, is this patch needed or not?
Please make sure that previous version of patches are marked as superseded.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [EXT] [PATCH V3] compress/mlx5: allow partial transformations support
2021-10-05 13:13 ` [dpdk-dev] [EXT] " Akhil Goyal
@ 2021-10-19 9:07 ` Matan Azrad
2021-10-20 14:12 ` Akhil Goyal
0 siblings, 1 reply; 8+ messages in thread
From: Matan Azrad @ 2021-10-19 9:07 UTC (permalink / raw)
To: Akhil Goyal, Raja Zidane, dev; +Cc: NBU-Contact-Thomas Monjalon
Hi Akhil
From: dev <dev-bounces@dpdk.org>
> > Currently compress, decompress and dma are allowed only when all 3
> > capabilities are on.
> > A case where the user wants decompress offload, if decompress
> > capability is on but one of compress, dma is off, is not allowed.
> > Split compress/decompress/dma support check to allow partial
> > transformations.
> >
> > V2: fix checkpatch errors
> > V3: rebase.
> >
> > ---mlx5: replaced hardware queue object
> >
> > Signed-off-by: Raja Zidane <rzidane@nvidia.com>
> > Acked-by: Matan Azrad <matan@nvidia.com>
> > ---
> This patch does not apply.
> When I see in patchworks, there is another series which include this patch.
> But that is also superseded and the latest series does not have this patch.
> Not sure what is happening here, is this patch needed or not?
Yes, this patch is needed.
This patch depended on a series that was integrated to the master branch by Thomas.
This is the link for the first patch of the series: https://patchwork.dpdk.org/project/dpdk/patch/20211005122733.12444-2-rzidane@nvidia.com/
Please let us know if you still have an issue in integration.
> Please make sure that previous version of patches are marked as
> superseded.
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [EXT] [PATCH V3] compress/mlx5: allow partial transformations support
2021-10-19 9:07 ` Matan Azrad
@ 2021-10-20 14:12 ` Akhil Goyal
0 siblings, 0 replies; 8+ messages in thread
From: Akhil Goyal @ 2021-10-20 14:12 UTC (permalink / raw)
To: Matan Azrad, Raja Zidane, dev; +Cc: NBU-Contact-Thomas Monjalon
> > This patch does not apply.
> > When I see in patchworks, there is another series which include this patch.
> > But that is also superseded and the latest series does not have this patch.
> > Not sure what is happening here, is this patch needed or not?
>
> Yes, this patch is needed.
>
> This patch depended on a series that was integrated to the master branch by
> Thomas.
>
> Please let us know if you still have an issue in integration.
>
>
Applied to dpdk-next-crypto
Thanks.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-10-20 14:12 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-03 14:22 [dpdk-dev] [PATCH] compress/mlx5: allow partial transformations support Raja Zidane
2021-09-05 14:03 ` [dpdk-dev] [EXT] " Akhil Goyal
2021-09-05 15:57 ` [dpdk-dev] [PATCH V2] " Raja Zidane
2021-09-06 19:59 ` [dpdk-dev] [EXT] " Akhil Goyal
2021-09-15 0:12 ` [dpdk-dev] [PATCH V3] " Raja Zidane
2021-10-05 13:13 ` [dpdk-dev] [EXT] " Akhil Goyal
2021-10-19 9:07 ` Matan Azrad
2021-10-20 14:12 ` Akhil Goyal
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).