[PATCH v5 00/13] SIW: Request for Comments

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

 



This patch set contributes version 5 of the SoftiWarp
driver, as originally introduced to the list Oct 6th, 2017.
SoftiWarp (siw) implements the iWarp RDMA protocol over
kernel TCP sockets. The driver integrates with the
linux-rdma framework.

In response to the various helpful feedback, we fixed (besides
other small fixes) the following issues:

1. The debugfs logic got completely removed. There is no
   debugfs entry for siw anymore. We will interate with rdmatool
   in the future.

2. The driver adheres to the device and object management as
   recently proposed by Jason Gunthorpe. This includes the new
   protection domain management.

3. An entry to linux MAINTAINERS for siw was added.

4. The packet length at MPA protocol level got restricted
   to physical MTU size: to interoperate with hardware iWarp
   devices such as Chelsio T5/T6, GSO usage got unselected.
   It can be selcted with a global parameter 'gso_seg_limit'.
   Setting 'gso_seg_limit = 0' makes full use of GSO if advertised
   by the TCP socket. This almost doubles bandwidth for bulk data
   transfers in a pure siw <-> siw setting, but does not interoperate
   wth some hardware RNIC's.

5. An 'SPDX-License-Identifier' got added to all files

6. The user interface as defined in include/uapi/rdma/siwa_user.h
   got cleaned up.

7. Useless redefinition of functions for kernel reference count
   reading got removed.


The driver continues to make use of rdma-netdev extensions to
add and delete links, as proposed by Steve Wise.

The driver continues to rely on the iWarp port mapper extensions
for software RDMA devices, as proposed by Steve Wise.

We maintain a snapshot of the current code at
https://github.com/zrlio/softiwarp-for-linux-rdma.git
within branch 'siw-for-rdma-next-v5'.
This branch includes the latest netlink and portmapper patches from
Steve as well as the latest device and object management
from Jason.

The matching siw user library is maintained at
https://github.com/zrlio/softiwarp-user-for-linux-rdma.git.
It is based on rdma-core, and extended with Steve's patches
to both rdma netlink and portmapper. The relevant branch
name is 'siw-for-rdma-next'.

Since siw may generate work completion notifications from a
kthread context, performance of kernel siw clients like NVMeF
depends on the following pending kernel patch (included in
https://github.com/zrlio/softiwarp-for-linux-rdma.git):
https://www.spinics.net/lists/linux-rdma/msg75081.html

As always, we'd highly appreciate your code review. Thanks
very much for your time!

Bernard


Bernard Metzler (13):
  iWarp wire packet format
  SIW main include file
  SIW network and RDMA core interface
  SIW object management
  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 debugging
  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       |   15 +
 drivers/infiniband/sw/siw/iwarp.h        |  414 ++++
 drivers/infiniband/sw/siw/siw.h          |  790 ++++++++
 drivers/infiniband/sw/siw/siw_ae.c       |  121 ++
 drivers/infiniband/sw/siw/siw_cm.c       | 2186 ++++++++++++++++++++++
 drivers/infiniband/sw/siw/siw_cm.h       |  157 ++
 drivers/infiniband/sw/siw/siw_cq.c       |  149 ++
 drivers/infiniband/sw/siw/siw_debug.c    |  124 ++
 drivers/infiniband/sw/siw/siw_debug.h    |   69 +
 drivers/infiniband/sw/siw/siw_main.c     |  813 ++++++++
 drivers/infiniband/sw/siw/siw_mem.c      |  217 +++
 drivers/infiniband/sw/siw/siw_obj.c      |  341 ++++
 drivers/infiniband/sw/siw/siw_obj.h      |  226 +++
 drivers/infiniband/sw/siw/siw_qp.c       | 1478 +++++++++++++++
 drivers/infiniband/sw/siw/siw_qp_rx.c    | 1535 +++++++++++++++
 drivers/infiniband/sw/siw/siw_qp_tx.c    | 1330 +++++++++++++
 drivers/infiniband/sw/siw/siw_verbs.c    | 1851 ++++++++++++++++++
 drivers/infiniband/sw/siw/siw_verbs.h    |  114 ++
 include/uapi/rdma/rdma_user_ioctl_cmds.h |    1 +
 include/uapi/rdma/siw_user.h             |  223 +++
 24 files changed, 12180 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_ae.c
 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_debug.c
 create mode 100644 drivers/infiniband/sw/siw/siw_debug.h
 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_obj.c
 create mode 100644 drivers/infiniband/sw/siw/siw_obj.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_user.h

-- 
2.17.2




[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