[lustre-devel] [PATCH 1/4] staging: lustre: o2iblnd: limit cap.max_send_wr for MLX5

Alexey Lyashkov alexey.lyashkov at seagate.com
Wed May 11 09:32:26 PDT 2016


As Sergey say in original ticket, It patch change system tunable without
any visible effects.
So user will continue to think it uses a max sends XX when system have
change it to some other value.
Let's change CDEBUG(D_NET to warning, or rework a patch.
It patch needs because someone may set max sends over HW card limitation,
so good fix will take config from card and adjust max sends without a loop.


On Mon, May 9, 2016 at 5:53 PM, James Simmons <jsimmons at infradead.org>
wrote:

> From: Dmitry Eremin <dmitry.eremin at intel.com>
>
> Decrease cap.max_send_wr until it is accepted by rdma_create_qp()
>
> Signed-off-by: Dmitry Eremin <dmitry.eremin at intel.com>
> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7124
> Reviewed-on: http://review.whamcloud.com/18347
> Reviewed-by: Olaf Weber <olaf at sgi.com>
> Reviewed-by: Doug Oucharek <doug.s.oucharek at intel.com>
> Reviewed-by: Oleg Drokin <oleg.drokin at intel.com>
> Signed-off-by: James Simmons <jsimmons at infradead.org>
> ---
>  .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c    |   11 ++++++++++-
>  1 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
> b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
> index d99b4fa..bc179a2 100644
> --- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
> +++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
> @@ -768,7 +768,12 @@ kib_conn_t *kiblnd_create_conn(kib_peer_t *peer,
> struct rdma_cm_id *cmid,
>
>         conn->ibc_sched = sched;
>
> -       rc = rdma_create_qp(cmid, conn->ibc_hdev->ibh_pd, init_qp_attr);
> +       do {
> +               rc = rdma_create_qp(cmid, conn->ibc_hdev->ibh_pd,
> init_qp_attr);
> +               if (!rc || init_qp_attr->cap.max_send_wr < 16)
> +                       break;
> +       } while (rc);
> +
>         if (rc) {
>                 CERROR("Can't create QP: %d, send_wr: %d, recv_wr: %d\n",
>                        rc, init_qp_attr->cap.max_send_wr,
> @@ -776,6 +781,10 @@ kib_conn_t *kiblnd_create_conn(kib_peer_t *peer,
> struct rdma_cm_id *cmid,
>                 goto failed_2;
>         }
>
> +       if (init_qp_attr->cap.max_send_wr != IBLND_SEND_WRS(conn))
> +               CDEBUG(D_NET, "original send wr %d, created with %d\n",
> +                      IBLND_SEND_WRS(conn),
> init_qp_attr->cap.max_send_wr);
> +
>         LIBCFS_FREE(init_qp_attr, sizeof(*init_qp_attr));
>
>         /* 1 ref for caller and each rxmsg */
> --
> 1.7.1
>
> _______________________________________________
> lustre-devel mailing list
> lustre-devel at lists.lustre.org
> http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org
>



-- 
Alexey Lyashkov *·* Technical lead for a Morpheus team
Seagate Technology, LLC
www.seagate.com
www.lustre.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20160511/042f00c5/attachment.htm>


More information about the lustre-devel mailing list