Re: [PATCH v3 00/11] SIW: Software iWarp RDMA (siw) driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2019-06-20 at 18:21 +0200, Bernard Metzler wrote:
> This patch set contributes the SoftiWarp driver rebased for
> latest rdma-next. SoftiWarp (siw) implements the iWarp RDMA
> protocol over kernel TCP sockets. The driver integrates with
> the linux-rdma framework.
> 
> A matching userlevel driver is available as PR at
> https://github.com/linux-rdma/rdma-core/pull/536
> 
> Many thanks for reviewing and testing the driver, especially to Leon,
> Jason, Steve, Doug, Olga, Dennis, Gal. You all helped to significantly
> improve the driver over the last year.
> 
> Please find below a list of changes and comments, compared to older
> versions of the siw driver.
> 
> Many thanks!
> Bernard.


This, modulo moving the two defines to a private header, has been pulled
into for-next.  Thanks!

> 
> CHANGES:
> ========
> 
> v3 (this version)
> -----------------
> 
> - Rebased to rdma-next
> 
> - Removed unneccessary initialization of enums in siw-abi.h
> 
> - Added comment on sizing of all work queues to power of two.
> 
> 
> v2
> -----------------
> 
> - Changed recieve path CRC calculation to compute CRC32c not
>   on target buffer after placement, but on original skbuf.
>   This change severely hurts performance, if CRC is switched
>   on, since skb must now be walked twice. It is planned to
>   work on an extension to skb_copy_bits() to fold in CRC
>   computation.
> 
> - Moved debugging to using ibdev_dbg().
> 
> - Dropped detailed packet debug printing.
> 
> - Removed siw_debug.[ch] files.
> 
> - Removed resource tracking, code now relies on restrack of
>   RDMA midlayer. Only object counting to enforce reported
>   device limits is left in place.
> 
> - Removed all nested switch-case statements.
> 
> - Cleaned up header file #include's
> 
> - Moved CQ create/destroy to new semantics,
>   where midlayer creates/destroys containing object.
> 
> - Set siw's ABI version to 1 (was 0 before)
> 
> - Removed all enum initialization where not needed.
> 
> - Fixed MAINTANERS entry for siw driver
> 
> - This version stays with the current siw specific
>   management of user memory (siw_umem_get() vs.
>   ib_umem_get(), etc.). This, since the current ib_umem
>   implementation is less efficient for user page lookup
>   on the fast path, where effciency is important for a
>   SW RDMA driver. 
>   It is planned to contribute enhancements to the ib_umem
>   framework, wich makes it suitable for SW drivers as well.
> 
> 
> v1 (first version after v9 of siw RFC)
> --------------------------------------
> 
> - Rebased to 5.2-rc1
> 
> - All IDR code got removed.
> 
> - Both MR and QP deallocation verbs now synchronously
>   free the resources referenced by the RDMA mid-layer.
> 
> - IPv6 support was added.
> 
> - For compatibility with Chelsio iWarp hardware, the RX
>   path was slightly reworked. It now allows packet intersection
>   between tagged and untagged RDMAP operations. While not
>   a defined behavior as of IETF RFC 5040/5041, some RDMA hardware
>   may intersect an ongoing outbound (large) tagged message, such
>   as an multisegment RDMA Read Response with sending an untagged
>   message, such as an RDMA Send frame. This behavior was only
>   detected in an NVMeF setup, where siw was used at target side,
>   and RDMA hardware at client side (during file write). siw now
>   implements two input paths for tagged and untagged messages each,
>   and allows the intersected placement of both messages.
> 
> - The siw kernel abi file got renamed from siw_user.h to siw-abi.h.
> 
> Bernard Metzler (11):
>   iWarp wire packet format
>   SIW main include file
>   SIW network and RDMA core interface
>   SIW connection management
>   SIW application interface
>   SIW application buffer management
>   SIW queue pair methods
>   SIW transmit path
>   SIW receive path
>   SIW completion queue methods
>   SIW addition to kernel build environment
> 
>  MAINTAINERS                              |    7 +
>  drivers/infiniband/Kconfig               |    1 +
>  drivers/infiniband/sw/Makefile           |    1 +
>  drivers/infiniband/sw/siw/Kconfig        |   17 +
>  drivers/infiniband/sw/siw/Makefile       |   11 +
>  drivers/infiniband/sw/siw/iwarp.h        |  380 ++++
>  drivers/infiniband/sw/siw/siw.h          |  745 ++++++++
>  drivers/infiniband/sw/siw/siw_cm.c       | 2072
> ++++++++++++++++++++++
>  drivers/infiniband/sw/siw/siw_cm.h       |  133 ++
>  drivers/infiniband/sw/siw/siw_cq.c       |  101 ++
>  drivers/infiniband/sw/siw/siw_main.c     |  687 +++++++
>  drivers/infiniband/sw/siw/siw_mem.c      |  460 +++++
>  drivers/infiniband/sw/siw/siw_mem.h      |   74 +
>  drivers/infiniband/sw/siw/siw_qp.c       | 1322 ++++++++++++++
>  drivers/infiniband/sw/siw/siw_qp_rx.c    | 1455 +++++++++++++++
>  drivers/infiniband/sw/siw/siw_qp_tx.c    | 1268 +++++++++++++
>  drivers/infiniband/sw/siw/siw_verbs.c    | 1760 ++++++++++++++++++
>  drivers/infiniband/sw/siw/siw_verbs.h    |   91 +
>  include/uapi/rdma/rdma_user_ioctl_cmds.h |    1 +
>  include/uapi/rdma/siw-abi.h              |  185 ++
>  20 files changed, 10771 insertions(+)
>  create mode 100644 drivers/infiniband/sw/siw/Kconfig
>  create mode 100644 drivers/infiniband/sw/siw/Makefile
>  create mode 100644 drivers/infiniband/sw/siw/iwarp.h
>  create mode 100644 drivers/infiniband/sw/siw/siw.h
>  create mode 100644 drivers/infiniband/sw/siw/siw_cm.c
>  create mode 100644 drivers/infiniband/sw/siw/siw_cm.h
>  create mode 100644 drivers/infiniband/sw/siw/siw_cq.c
>  create mode 100644 drivers/infiniband/sw/siw/siw_main.c
>  create mode 100644 drivers/infiniband/sw/siw/siw_mem.c
>  create mode 100644 drivers/infiniband/sw/siw/siw_mem.h
>  create mode 100644 drivers/infiniband/sw/siw/siw_qp.c
>  create mode 100644 drivers/infiniband/sw/siw/siw_qp_rx.c
>  create mode 100644 drivers/infiniband/sw/siw/siw_qp_tx.c
>  create mode 100644 drivers/infiniband/sw/siw/siw_verbs.c
>  create mode 100644 drivers/infiniband/sw/siw/siw_verbs.h
>  create mode 100644 include/uapi/rdma/siw-abi.h
> 

-- 
Doug Ledford <dledford@xxxxxxxxxx>
    GPG KeyID: B826A3330E572FDD
    Fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux