[v3,01/11] common/mlx5: add DevX attributes for compress
Checks
Commit Message
Add the DevX attributes for compress related engines:
- compress
- decompress
- dma
Signed-off-by: Matan Azrad <matan@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
drivers/common/mlx5/mlx5_devx_cmds.c | 10 ++++++++++
drivers/common/mlx5/mlx5_devx_cmds.h | 7 +++++++
drivers/common/mlx5/mlx5_prm.h | 18 ++++++++++++++++--
3 files changed, 33 insertions(+), 2 deletions(-)
Comments
> Subject: [dpdk-dev] [PATCH v3 01/11] common/mlx5: add DevX attributes
> for compress
>
> Add the DevX attributes for compress related engines:
> - compress
> - decompress
> - dma
>
> Signed-off-by: Matan Azrad <matan@nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> ---
> drivers/common/mlx5/mlx5_devx_cmds.c | 10 ++++++++++
> drivers/common/mlx5/mlx5_devx_cmds.h | 7 +++++++
> drivers/common/mlx5/mlx5_prm.h | 18 ++++++++++++++++--
> 3 files changed, 33 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c
> b/drivers/common/mlx5/mlx5_devx_cmds.c
> index d5859c2..33acd73 100644
> --- a/drivers/common/mlx5/mlx5_devx_cmds.c
> +++ b/drivers/common/mlx5/mlx5_devx_cmds.c
> @@ -732,6 +732,16 @@ struct mlx5_devx_obj *
> attr->log_max_pd = MLX5_GET(cmd_hca_cap, hcattr, log_max_pd);
> attr->log_max_srq = MLX5_GET(cmd_hca_cap, hcattr, log_max_srq);
> attr->log_max_srq_sz = MLX5_GET(cmd_hca_cap, hcattr,
> log_max_srq_sz);
> + attr->mmo_dma_en = MLX5_GET(cmd_hca_cap, hcattr, dma_mmo);
> + attr->mmo_compress_en = MLX5_GET(cmd_hca_cap, hcattr,
> compress);
> + attr->mmo_decompress_en = MLX5_GET(cmd_hca_cap, hcattr,
> decompress);
> + attr->compress_min_block_size = MLX5_GET(cmd_hca_cap, hcattr,
> + compress_min_block_size);
> + attr->log_max_mmo_dma = MLX5_GET(cmd_hca_cap, hcattr,
> log_dma_mmo_size);
> + attr->log_max_mmo_compress = MLX5_GET(cmd_hca_cap, hcattr,
> + log_compress_mmo_size);
> + attr->log_max_mmo_decompress = MLX5_GET(cmd_hca_cap,
> hcattr,
> + log_decompress_mmo_size);
> if (attr->qos.sup) {
> MLX5_SET(query_hca_cap_in, in, op_mod,
> MLX5_GET_HCA_CAP_OP_MOD_QOS_CAP |
> diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h
> b/drivers/common/mlx5/mlx5_devx_cmds.h
> index bf83a90..696a981 100644
> --- a/drivers/common/mlx5/mlx5_devx_cmds.h
> +++ b/drivers/common/mlx5/mlx5_devx_cmds.h
> @@ -130,6 +130,13 @@ struct mlx5_hca_attr {
> uint32_t log_max_srq;
> uint32_t log_max_srq_sz;
> uint32_t rss_ind_tbl_cap;
> + uint32_t mmo_dma_en:1;
> + uint32_t mmo_compress_en:1;
> + uint32_t mmo_decompress_en:1;
> + uint32_t compress_min_block_size:4;
> + uint32_t log_max_mmo_dma:5;
> + uint32_t log_max_mmo_compress:5;
> + uint32_t log_max_mmo_decompress:5;
> };
>
> struct mlx5_devx_wq_attr {
> diff --git a/drivers/common/mlx5/mlx5_prm.h
> b/drivers/common/mlx5/mlx5_prm.h index c9eba22..72c843f 100644
> --- a/drivers/common/mlx5/mlx5_prm.h
> +++ b/drivers/common/mlx5/mlx5_prm.h
> @@ -1127,7 +1127,15 @@ enum {
> struct mlx5_ifc_cmd_hca_cap_bits {
> u8 reserved_at_0[0x30];
> u8 vhca_id[0x10];
> - u8 reserved_at_40[0x40];
> + u8 reserved_at_40[0x20];
> + u8 reserved_at_60[0x3];
> + u8 log_regexp_scatter_gather_size[0x5];
> + u8 reserved_at_68[0x3];
> + u8 log_dma_mmo_size[5];
> + u8 reserved_at_70[0x3];
> + u8 log_compress_mmo_size[5];
> + u8 reserved_at_78[0x3];
> + u8 log_decompress_mmo_size[5];
Small comment, PRM bit array size is always defined in hex format.
> u8 log_max_srq_sz[0x8];
> u8 log_max_qp_sz[0x8];
> u8 reserved_at_90[0x9];
> @@ -1175,7 +1183,13 @@ struct mlx5_ifc_cmd_hca_cap_bits {
> u8 log_max_ra_res_dc[0x6];
> u8 reserved_at_140[0xa];
> u8 log_max_ra_req_qp[0x6];
> - u8 reserved_at_150[0xa];
> + u8 rtr2rts_qp_counters_set_id[1];
> + u8 rts2rts_udp_sport[1];
> + u8 rts2rts_lag_tx_port_affinity[1];
> + u8 dma_mmo[1];
> + u8 compress_min_block_size[4];
> + u8 compress[1];
> + u8 decompress[1];
Same.
> u8 log_max_ra_res_qp[0x6];
> u8 end_pad[0x1];
> u8 cc_query_allowed[0x1];
> --
> 1.8.3.1
From: Tal Shnaiderman
> Sent: Thursday, January 21, 2021 6:52 PM
> To: Matan Azrad <matan@nvidia.com>; dev@dpdk.org
> Cc: NBU-Contact-Thomas Monjalon <thomas@monjalon.net>; Ashish Gupta
> <ashish.gupta@marvell.com>; Fiona Trahe <fiona.trahe@intel.com>;
> akhil.goyal@nxp.com
> Subject: RE: [dpdk-dev] [PATCH v3 01/11] common/mlx5: add DevX attributes
> for compress
>
> > Subject: [dpdk-dev] [PATCH v3 01/11] common/mlx5: add DevX attributes
> > for compress
> >
> > Add the DevX attributes for compress related engines:
> > - compress
> > - decompress
> > - dma
> >
> > Signed-off-by: Matan Azrad <matan@nvidia.com>
> > Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> > ---
> > drivers/common/mlx5/mlx5_devx_cmds.c | 10 ++++++++++
> > drivers/common/mlx5/mlx5_devx_cmds.h | 7 +++++++
> > drivers/common/mlx5/mlx5_prm.h | 18 ++++++++++++++++--
> > 3 files changed, 33 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c
> > b/drivers/common/mlx5/mlx5_devx_cmds.c
> > index d5859c2..33acd73 100644
> > --- a/drivers/common/mlx5/mlx5_devx_cmds.c
> > +++ b/drivers/common/mlx5/mlx5_devx_cmds.c
> > @@ -732,6 +732,16 @@ struct mlx5_devx_obj *
> > attr->log_max_pd = MLX5_GET(cmd_hca_cap, hcattr, log_max_pd);
> > attr->log_max_srq = MLX5_GET(cmd_hca_cap, hcattr, log_max_srq);
> > attr->log_max_srq_sz = MLX5_GET(cmd_hca_cap, hcattr,
> > log_max_srq_sz);
> > + attr->mmo_dma_en = MLX5_GET(cmd_hca_cap, hcattr, dma_mmo);
> > + attr->mmo_compress_en = MLX5_GET(cmd_hca_cap, hcattr,
> > compress);
> > + attr->mmo_decompress_en = MLX5_GET(cmd_hca_cap, hcattr,
> > decompress);
> > + attr->compress_min_block_size = MLX5_GET(cmd_hca_cap, hcattr,
> > + compress_min_block_size);
> > + attr->log_max_mmo_dma = MLX5_GET(cmd_hca_cap, hcattr,
> > log_dma_mmo_size);
> > + attr->log_max_mmo_compress = MLX5_GET(cmd_hca_cap, hcattr,
> > + log_compress_mmo_size);
> > + attr->log_max_mmo_decompress = MLX5_GET(cmd_hca_cap,
> > hcattr,
> > + log_decompress_mmo_size);
> > if (attr->qos.sup) {
> > MLX5_SET(query_hca_cap_in, in, op_mod,
> > MLX5_GET_HCA_CAP_OP_MOD_QOS_CAP | diff --git
> > a/drivers/common/mlx5/mlx5_devx_cmds.h
> > b/drivers/common/mlx5/mlx5_devx_cmds.h
> > index bf83a90..696a981 100644
> > --- a/drivers/common/mlx5/mlx5_devx_cmds.h
> > +++ b/drivers/common/mlx5/mlx5_devx_cmds.h
> > @@ -130,6 +130,13 @@ struct mlx5_hca_attr {
> > uint32_t log_max_srq;
> > uint32_t log_max_srq_sz;
> > uint32_t rss_ind_tbl_cap;
> > + uint32_t mmo_dma_en:1;
> > + uint32_t mmo_compress_en:1;
> > + uint32_t mmo_decompress_en:1;
> > + uint32_t compress_min_block_size:4;
> > + uint32_t log_max_mmo_dma:5;
> > + uint32_t log_max_mmo_compress:5;
> > + uint32_t log_max_mmo_decompress:5;
> > };
> >
> > struct mlx5_devx_wq_attr {
> > diff --git a/drivers/common/mlx5/mlx5_prm.h
> > b/drivers/common/mlx5/mlx5_prm.h index c9eba22..72c843f 100644
> > --- a/drivers/common/mlx5/mlx5_prm.h
> > +++ b/drivers/common/mlx5/mlx5_prm.h
> > @@ -1127,7 +1127,15 @@ enum {
> > struct mlx5_ifc_cmd_hca_cap_bits {
> > u8 reserved_at_0[0x30];
> > u8 vhca_id[0x10];
> > - u8 reserved_at_40[0x40];
> > + u8 reserved_at_40[0x20];
> > + u8 reserved_at_60[0x3];
> > + u8 log_regexp_scatter_gather_size[0x5];
> > + u8 reserved_at_68[0x3];
> > + u8 log_dma_mmo_size[5];
> > + u8 reserved_at_70[0x3];
> > + u8 log_compress_mmo_size[5];
> > + u8 reserved_at_78[0x3];
> > + u8 log_decompress_mmo_size[5];
>
> Small comment, PRM bit array size is always defined in hex format.
>
> > u8 log_max_srq_sz[0x8];
> > u8 log_max_qp_sz[0x8];
> > u8 reserved_at_90[0x9];
> > @@ -1175,7 +1183,13 @@ struct mlx5_ifc_cmd_hca_cap_bits {
> > u8 log_max_ra_res_dc[0x6];
> > u8 reserved_at_140[0xa];
> > u8 log_max_ra_req_qp[0x6];
> > - u8 reserved_at_150[0xa];
> > + u8 rtr2rts_qp_counters_set_id[1];
> > + u8 rts2rts_udp_sport[1];
> > + u8 rts2rts_lag_tx_port_affinity[1];
> > + u8 dma_mmo[1];
> > + u8 compress_min_block_size[4];
> > + u8 compress[1];
> > + u8 decompress[1];
>
> Same.
>
> > u8 log_max_ra_res_qp[0x6];
> > u8 end_pad[0x1];
> > u8 cc_query_allowed[0x1];
> > --
> > 1.8.3.1
Yes, not look urgent, Akhil let me know if you can take it in integration or need to send more version for all the series because of it.
@@ -732,6 +732,16 @@ struct mlx5_devx_obj *
attr->log_max_pd = MLX5_GET(cmd_hca_cap, hcattr, log_max_pd);
attr->log_max_srq = MLX5_GET(cmd_hca_cap, hcattr, log_max_srq);
attr->log_max_srq_sz = MLX5_GET(cmd_hca_cap, hcattr, log_max_srq_sz);
+ attr->mmo_dma_en = MLX5_GET(cmd_hca_cap, hcattr, dma_mmo);
+ attr->mmo_compress_en = MLX5_GET(cmd_hca_cap, hcattr, compress);
+ attr->mmo_decompress_en = MLX5_GET(cmd_hca_cap, hcattr, decompress);
+ attr->compress_min_block_size = MLX5_GET(cmd_hca_cap, hcattr,
+ compress_min_block_size);
+ attr->log_max_mmo_dma = MLX5_GET(cmd_hca_cap, hcattr, log_dma_mmo_size);
+ attr->log_max_mmo_compress = MLX5_GET(cmd_hca_cap, hcattr,
+ log_compress_mmo_size);
+ attr->log_max_mmo_decompress = MLX5_GET(cmd_hca_cap, hcattr,
+ log_decompress_mmo_size);
if (attr->qos.sup) {
MLX5_SET(query_hca_cap_in, in, op_mod,
MLX5_GET_HCA_CAP_OP_MOD_QOS_CAP |
@@ -130,6 +130,13 @@ struct mlx5_hca_attr {
uint32_t log_max_srq;
uint32_t log_max_srq_sz;
uint32_t rss_ind_tbl_cap;
+ uint32_t mmo_dma_en:1;
+ uint32_t mmo_compress_en:1;
+ uint32_t mmo_decompress_en:1;
+ uint32_t compress_min_block_size:4;
+ uint32_t log_max_mmo_dma:5;
+ uint32_t log_max_mmo_compress:5;
+ uint32_t log_max_mmo_decompress:5;
};
struct mlx5_devx_wq_attr {
@@ -1127,7 +1127,15 @@ enum {
struct mlx5_ifc_cmd_hca_cap_bits {
u8 reserved_at_0[0x30];
u8 vhca_id[0x10];
- u8 reserved_at_40[0x40];
+ u8 reserved_at_40[0x20];
+ u8 reserved_at_60[0x3];
+ u8 log_regexp_scatter_gather_size[0x5];
+ u8 reserved_at_68[0x3];
+ u8 log_dma_mmo_size[5];
+ u8 reserved_at_70[0x3];
+ u8 log_compress_mmo_size[5];
+ u8 reserved_at_78[0x3];
+ u8 log_decompress_mmo_size[5];
u8 log_max_srq_sz[0x8];
u8 log_max_qp_sz[0x8];
u8 reserved_at_90[0x9];
@@ -1175,7 +1183,13 @@ struct mlx5_ifc_cmd_hca_cap_bits {
u8 log_max_ra_res_dc[0x6];
u8 reserved_at_140[0xa];
u8 log_max_ra_req_qp[0x6];
- u8 reserved_at_150[0xa];
+ u8 rtr2rts_qp_counters_set_id[1];
+ u8 rts2rts_udp_sport[1];
+ u8 rts2rts_lag_tx_port_affinity[1];
+ u8 dma_mmo[1];
+ u8 compress_min_block_size[4];
+ u8 compress[1];
+ u8 decompress[1];
u8 log_max_ra_res_qp[0x6];
u8 end_pad[0x1];
u8 cc_query_allowed[0x1];