From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shahaf Shuler Subject: Re: [PATCH 2/3] net/mlx5: add a function to rdma-core glue Date: Mon, 7 May 2018 05:46:44 +0000 Message-ID: References: <20180502232054.7852-1-yskoh@mellanox.com> <20180502232054.7852-3-yskoh@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Cc: "dev@dpdk.org" , Yongseok Koh To: Yongseok Koh , Adrien Mazarguil , =?iso-8859-1?Q?N=E9lio_Laranjeiro?= Return-path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00042.outbound.protection.outlook.com [40.107.0.42]) by dpdk.org (Postfix) with ESMTP id EB9AD160 for ; Mon, 7 May 2018 07:46:45 +0200 (CEST) In-Reply-To: <20180502232054.7852-3-yskoh@mellanox.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Thursday, May 3, 2018 2:21 AM, Yongseok Koh: > Subject: [dpdk-dev] [PATCH 2/3] net/mlx5: add a function to rdma-core glu= e >=20 > mlx5dv_create_wq() is added for the Multi-Packet RQ (a.k.a Striding RQ). >=20 > Signed-off-by: Yongseok Koh Acked-by: Shahaf Shuler =20 > --- > drivers/net/mlx5/Makefile | 5 +++++ > drivers/net/mlx5/mlx5_glue.c | 16 ++++++++++++++++ > drivers/net/mlx5/mlx5_glue.h | 8 ++++++++ > 3 files changed, 29 insertions(+) >=20 > diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile index > 13f079334..8d64d4cdf 100644 > --- a/drivers/net/mlx5/Makefile > +++ b/drivers/net/mlx5/Makefile > @@ -98,6 +98,11 @@ mlx5_autoconf.h.new: FORCE > mlx5_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh > $Q $(RM) -f -- '$@' > $Q sh -- '$<' '$@' \ > + HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT \ > + infiniband/mlx5dv.h \ > + enum MLX5DV_CONTEXT_MASK_STRIDING_RQ \ > + $(AUTOCONF_OUTPUT) > + $Q sh -- '$<' '$@' \ > HAVE_IBV_DEVICE_TUNNEL_SUPPORT \ > infiniband/mlx5dv.h \ > enum MLX5DV_CONTEXT_MASK_TUNNEL_OFFLOADS \ diff - > -git a/drivers/net/mlx5/mlx5_glue.c b/drivers/net/mlx5/mlx5_glue.c index > cd2716352..c7965e51f 100644 > --- a/drivers/net/mlx5/mlx5_glue.c > +++ b/drivers/net/mlx5/mlx5_glue.c > @@ -293,6 +293,21 @@ mlx5_glue_dv_create_cq(struct ibv_context > *context, > return mlx5dv_create_cq(context, cq_attr, mlx5_cq_attr); } >=20 > +static struct ibv_wq * > +mlx5_glue_dv_create_wq(struct ibv_context *context, > + struct ibv_wq_init_attr *wq_attr, > + struct mlx5dv_wq_init_attr *mlx5_wq_attr) { #ifndef > +HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT > + (void)context; > + (void)wq_attr; > + (void)mlx5_wq_attr; > + return NULL; > +#else > + return mlx5dv_create_wq(context, wq_attr, mlx5_wq_attr); #endif } > + > static int > mlx5_glue_dv_query_device(struct ibv_context *ctx, > struct mlx5dv_context *attrs_out) > @@ -368,6 +383,7 @@ const struct mlx5_glue *mlx5_glue =3D &(const struct > mlx5_glue){ > .port_state_str =3D mlx5_glue_port_state_str, > .cq_ex_to_cq =3D mlx5_glue_cq_ex_to_cq, > .dv_create_cq =3D mlx5_glue_dv_create_cq, > + .dv_create_wq =3D mlx5_glue_dv_create_wq, > .dv_query_device =3D mlx5_glue_dv_query_device, > .dv_set_context_attr =3D mlx5_glue_dv_set_context_attr, > .dv_init_obj =3D mlx5_glue_dv_init_obj, > diff --git a/drivers/net/mlx5/mlx5_glue.h b/drivers/net/mlx5/mlx5_glue.h > index 9f36af81a..e584d3679 100644 > --- a/drivers/net/mlx5/mlx5_glue.h > +++ b/drivers/net/mlx5/mlx5_glue.h > @@ -35,6 +35,10 @@ struct ibv_query_counter_set_attr; struct > mlx5dv_qp_init_attr; #endif >=20 > +#ifndef HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT > +struct mlx5dv_wq_init_attr; > +#endif > + > /* LIB_GLUE_VERSION must be updated every time this structure is > modified. */ struct mlx5_glue { > const char *version; > @@ -104,6 +108,10 @@ struct mlx5_glue { > (struct ibv_context *context, > struct ibv_cq_init_attr_ex *cq_attr, > struct mlx5dv_cq_init_attr *mlx5_cq_attr); > + struct ibv_wq *(*dv_create_wq) > + (struct ibv_context *context, > + struct ibv_wq_init_attr *wq_attr, > + struct mlx5dv_wq_init_attr *mlx5_wq_attr); > int (*dv_query_device)(struct ibv_context *ctx_in, > struct mlx5dv_context *attrs_out); > int (*dv_set_context_attr)(struct ibv_context *ibv_ctx, > -- > 2.11.0