linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Selvin Xavier <selvin.xavier@avagotech.com>
To: Sagi Grimberg <sagig@mellanox.com>, linux-rdma@vger.kernel.org
Cc: linux-nfs@vger.kernel.org, "Nicholas A. Bellinger" <nab@linux-iscsi.org>
Subject: RE: [PATCH v2 00/26] New fast registration API
Date: Thu, 8 Oct 2015 11:33:55 +0530	[thread overview]
Message-ID: <578d249d106203063b0ba29fba626195@mail.gmail.com> (raw)
In-Reply-To: <1443116118-10730-1-git-send-email-sagig@mellanox.com>

Sagi,

With the RDMA CM patch to accept RoCE
connections(https://patchwork.kernel.org/patch/7335451/) on top of
reg_api.5 branch,  I have tested  nfs rdma over ocrdma. Looks good.

Tested-by: Selvin Xavier <selvin.xavier@avagotech.com>

Thanks,
Selvin Xavier

> -----Original Message-----
> From: linux-rdma-owner@vger.kernel.org [mailto:linux-rdma-
> owner@vger.kernel.org] On Behalf Of Sagi Grimberg
> Sent: Thursday, September 24, 2015 11:05 PM
> To: linux-rdma@vger.kernel.org
> Cc: linux-nfs@vger.kernel.org; Nicholas A. Bellinger
> Subject: [PATCH v2 00/26] New fast registration API
>
> Hi all,
>
> As discussed on the linux-rdma list, there is plenty of room for
improvement
> in our memory registration APIs. We keep finding ULPs that are
duplicating
> code, sometimes use wrong strategies and mis-use our current API.
>
> As a first step, this patch set replaces the fast registration API to
accept a
> kernel common struct scatterlist and takes care of the page vector
> construction in the core layer with hooks for the drivers HW specific
> assignments. This allows to remove a common code duplication as it was
> done in each and every ULP driver.
>
> Changes from v1:
> - Add ib_map_mr_sg_zbva() for RDS which uses it (preferred it over
>   polluting the API).
>
> - Replaced coherent allocations in mlx4, mlx5 with DMA streaming
>   APIs (Bart)
>
> - Changed ib_map_mr_sg description (Bart)
>
> - Split SRP driver patches (Bart)
>
> - Added missing wr->next = NULL from various ULPs (Steve, Santosh)
>
> - Fixed 0-day testing errors in nes driver, xprtrdma and svcrdma
>
> - Fixed checkpatch issues
>
> Changes from v0:
> - Rebased on top of 4.3-rc1 + Christoph's ib_send_wr conversion patches
>
> - Allow the ULP to pass page_size argument to ib_map_mr_sg in order
>   to have it work better in some specific workloads. This suggestion
>   came from Bart Van Assche which pointed out that some applications
>   might use page sizes significantly smaller than the system PAGE_SIZE
>   of specific architectures
>
> - Fixed some logical bugs in ib_sg_to_pages
>
> - Added a set_page function pointer for drivers to pass to
ib_sg_to_pages
>   so some drivers (e.g mlx4, mlx5, nes) can avoid keeping a second page
>   vector and/or re-iterate on the page vector in order to perform HW
specific
>   assignments (big/little endian conversion, extra flags)
>
> - Converted SRP initiator and RDS iwarp ULPs to the new API
>
> - Removed fast registration code from hfi1 driver (as it isn't supported
>   anyway). I assume that the correct place to get the support back would
>   be in a shared SW library (hfi1, qib, rxe).
>
> - Updated the change logs
>
> So far my tests covered:
> - ULPs:
> 	* iser initiator
> 	* iser target
> 	* xprtrdma
> 	* svcrdma
> - Drivers:
> 	* mlx4
> 	* mlx5
> 	* Steve Wise was kind enough to run NFS client/server over cxgb4
> and
> 	  reported good results.
> 	* Santosh reports that RDS IB conversion is functional and working
> 	  with ib_map_mr_sg_zbva
>
> I don't have access to other HW devices (qib, nes) nor iwarp devices so
RDS is
> compile tested only. Santosh reports
>
> I'm targeting this to 4.4 so I'll appreciate more feedback and a bigger
testing
> coverage.
>
> The code is available at:
> https://github.com/sagigrimberg/linux/tree/reg_api.4
>
> Sagi Grimberg (26):
>   IB/core: Introduce new fast registration API
>   IB/mlx5: Remove dead fmr code
>   IB/mlx5: Support the new memory registration API
>   IB/mlx4: Support the new memory registration API
>   RDMA/ocrdma: Support the new memory registration API
>   RDMA/cxgb3: Support the new memory registration API
>   iw_cxgb4: Support the new memory registration API
>   IB/qib: Support the new memory registration API
>   RDMA/nes: Support the new memory registration API
>   IB/iser: Port to new fast registration API
>   iser-target: Port to new memory registration API
>   xprtrdma: Port to new memory registration API
>   svcrdma: Port to new memory registration API
>   RDS/IW: Convert to new memory registration API
>   IB/srp: Split srp_map_sg
>   IB/srp: Convert to new registration API
>   IB/srp: Dont allocate a page vector when using fast_reg
>   IB/mlx5: Remove old FRWR API support
>   IB/mlx4: Remove old FRWR API support
>   RDMA/ocrdma: Remove old FRWR API
>   RDMA/cxgb3: Remove old FRWR API
>   iw_cxgb4: Remove old FRWR API
>   IB/qib: Remove old FRWR API
>   RDMA/nes: Remove old FRWR API
>   IB/hfi1: Remove Old fast registraion API support
>   IB/core: Remove old fast registration API
>
>  drivers/infiniband/core/verbs.c             | 132 +++++++++++---
>  drivers/infiniband/hw/cxgb3/iwch_cq.c       |   2 +-
>  drivers/infiniband/hw/cxgb3/iwch_provider.c |  39 +++--
>  drivers/infiniband/hw/cxgb3/iwch_provider.h |   2 +
>  drivers/infiniband/hw/cxgb3/iwch_qp.c       |  37 ++--
>  drivers/infiniband/hw/cxgb4/cq.c            |   2 +-
>  drivers/infiniband/hw/cxgb4/iw_cxgb4.h      |  25 +--
>  drivers/infiniband/hw/cxgb4/mem.c           |  61 +++----
>  drivers/infiniband/hw/cxgb4/provider.c      |   3 +-
>  drivers/infiniband/hw/cxgb4/qp.c            |  47 +++--
>  drivers/infiniband/hw/mlx4/cq.c             |   2 +-
>  drivers/infiniband/hw/mlx4/main.c           |   3 +-
>  drivers/infiniband/hw/mlx4/mlx4_ib.h        |  22 +--
>  drivers/infiniband/hw/mlx4/mr.c             | 143 ++++++++++------
>  drivers/infiniband/hw/mlx4/qp.c             |  34 ++--
>  drivers/infiniband/hw/mlx5/cq.c             |   4 +-
>  drivers/infiniband/hw/mlx5/main.c           |   3 +-
>  drivers/infiniband/hw/mlx5/mlx5_ib.h        |  47 +----
>  drivers/infiniband/hw/mlx5/mr.c             | 129 +++++++++-----
>  drivers/infiniband/hw/mlx5/qp.c             | 140 +++++++--------
>  drivers/infiniband/hw/nes/nes_hw.h          |   6 -
>  drivers/infiniband/hw/nes/nes_verbs.c       | 163 +++++++-----------
>  drivers/infiniband/hw/nes/nes_verbs.h       |   4 +
>  drivers/infiniband/hw/ocrdma/ocrdma.h       |   2 +
>  drivers/infiniband/hw/ocrdma/ocrdma_main.c  |   3 +-
>  drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 154 ++++++++---------
>  drivers/infiniband/hw/ocrdma/ocrdma_verbs.h |   7 +-
>  drivers/infiniband/hw/qib/qib_keys.c        |  42 ++---
>  drivers/infiniband/hw/qib/qib_mr.c          |  46 ++---
>  drivers/infiniband/hw/qib/qib_verbs.c       |  13 +-
>  drivers/infiniband/hw/qib/qib_verbs.h       |  13 +-
>  drivers/infiniband/ulp/iser/iscsi_iser.h    |   8 +-
>  drivers/infiniband/ulp/iser/iser_memory.c   |  54 +++---
>  drivers/infiniband/ulp/iser/iser_verbs.c    |  16 +-
>  drivers/infiniband/ulp/isert/ib_isert.c     | 130 +++-----------
>  drivers/infiniband/ulp/isert/ib_isert.h     |   2 -
>  drivers/infiniband/ulp/srp/ib_srp.c         | 255
++++++++++++++++------------
>  drivers/infiniband/ulp/srp/ib_srp.h         |  11 +-
>  drivers/staging/hfi1/keys.c                 |  55 ------
>  drivers/staging/hfi1/mr.c                   |  32 +---
>  drivers/staging/hfi1/verbs.c                |   9 +-
>  drivers/staging/hfi1/verbs.h                |   8 -
>  include/linux/sunrpc/svc_rdma.h             |   6 +-
>  include/rdma/ib_verbs.h                     |  86 +++++-----
>  net/rds/iw.h                                |   5 +-
>  net/rds/iw_rdma.c                           | 128 +++++---------
>  net/rds/iw_send.c                           |  57 +++----
>  net/sunrpc/xprtrdma/frwr_ops.c              | 113 +++++++-----
>  net/sunrpc/xprtrdma/svc_rdma_recvfrom.c     |  76 +++++----
>  net/sunrpc/xprtrdma/svc_rdma_transport.c    |  34 ++--
>  net/sunrpc/xprtrdma/xprt_rdma.h             |   3 +-
>  51 files changed, 1143 insertions(+), 1275 deletions(-)
>
> --
> 1.8.4.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the
> body of a message to majordomo@vger.kernel.org More majordomo info at
> http://vger.kernel.org/majordomo-info.html

      parent reply	other threads:[~2015-10-08  6:03 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-24 17:34 [PATCH v2 00/26] New fast registration API Sagi Grimberg
2015-09-24 17:34 ` [PATCH v2 01/26] IB/core: Introduce new " Sagi Grimberg
2015-09-24 17:34 ` [PATCH v2 02/26] IB/mlx5: Remove dead fmr code Sagi Grimberg
2015-09-24 17:34 ` [PATCH v2 03/26] IB/mlx5: Support the new memory registration API Sagi Grimberg
2015-09-24 17:34 ` [PATCH v2 04/26] IB/mlx4: " Sagi Grimberg
2015-09-24 17:34 ` [PATCH v2 05/26] RDMA/ocrdma: " Sagi Grimberg
2015-09-24 17:34 ` [PATCH v2 06/26] RDMA/cxgb3: " Sagi Grimberg
2015-09-24 17:34 ` [PATCH v2 07/26] iw_cxgb4: " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 08/26] IB/qib: " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 09/26] RDMA/nes: " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 10/26] IB/iser: Port to new fast " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 11/26] iser-target: Port to new memory " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 12/26] xprtrdma: " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 13/26] svcrdma: " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 14/26] RDS/IW: Convert " Sagi Grimberg
2015-09-24 17:43   ` santosh.shilimkar
2015-09-24 17:35 ` [PATCH v2 15/26] IB/srp: Split srp_map_sg Sagi Grimberg
2015-09-25 16:15   ` Bart Van Assche
2015-09-27  7:03     ` Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 16/26] IB/srp: Convert to new registration API Sagi Grimberg
2015-09-25 16:34   ` Bart Van Assche
2015-09-27  7:04     ` Sagi Grimberg
2015-10-01 18:10   ` Bart Van Assche
2015-09-24 17:35 ` [PATCH v2 17/26] IB/srp: Dont allocate a page vector when using fast_reg Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 18/26] IB/mlx5: Remove old FRWR API support Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 19/26] IB/mlx4: " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 20/26] RDMA/ocrdma: Remove old FRWR API Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 21/26] RDMA/cxgb3: " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 22/26] iw_cxgb4: " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 23/26] IB/qib: " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 24/26] RDMA/nes: " Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 25/26] IB/hfi1: Remove Old fast registraion API support Sagi Grimberg
2015-09-24 17:35 ` [PATCH v2 26/26] IB/core: Remove old fast registration API Sagi Grimberg
2015-09-28 19:32 ` [PATCH v2 00/26] New " Steve Wise
2015-10-08  6:03 ` Selvin Xavier [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=578d249d106203063b0ba29fba626195@mail.gmail.com \
    --to=selvin.xavier@avagotech.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=nab@linux-iscsi.org \
    --cc=sagig@mellanox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).