Re: [PATCH v4 00/13] SIW: Request for Comments

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

 



-----"Dennis Dalessandro" <dennis.dalessandro@xxxxxxxxx> wrote: -----

>To: bmt@xxxxxxxxxxxxxx, linux-rdma@xxxxxxxxxxxxxxx
>From: "Dennis Dalessandro" <dennis.dalessandro@xxxxxxxxx>
>Date: 01/30/2019 06:57PM
>Subject: Re: [PATCH v4 00/13] SIW: Request for Comments
>
>On 1/30/2019 12:21 PM, bmt@xxxxxxxxxxxxxx wrote:
>> From: Bernard Metzler <bmt@xxxxxxxxxxxxxx>
>> 
>> This patch set contributes a new version 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.
>> 
>> For this patch series, we aimed at fixing the main
>> obstacles, which prevented siw acceptance in the past:
>> 
>> 1. siw now uses the recently extended rdma netlink protocol
>>     for adding and removing siw devices. It became the
>>     only way of managing siw devices.
>> 
>> 2. The driver integrates with the currently reviewed
>>     RDMA/IWPM patch series on introducing no port mapping
>>     requirements. These patches as provided by Steve Wise
>>     are a pre-requisit to run siw in an environment with
>>     active iwpmd.
>> 
>> The code has the following known limitations:
>> 
>> 1. Only IPv4 addresses are supported / no IPv6 support.
>> 
>> 2. All previously flexible module parameters are translated
>>     into const values as defined in siw_main.c. We propose
>>     another extension of the netlink protocol to make those
>>     driver parameters dynamically settable. Ideally, we would
>>     distinguish between link specific and connection specific
>>     parameters.
>> 
>>     Currently, we would like to see the following parameters
>>     settable:
>>     o MPA peer-to-peer mode (boolean on/off)
>>     o MPA CRC (boolean on/off)
>>     o MPA CRC negotiation mode: accept different CRC setting
>>       from peer (boolean on/off)
>>     o TCP_NODELAY to control Nagle settings of TCP socket
>>       (boolean on/off)
>>     o MPA version (0, 1 or 2)
>>     o Zerocopy to let TCP transmit out of application
>>       buffers wr/o copying data (boolean on/off)
>>     o GSO to select Generic Segementation Offload for
>>       larger frames (one frame may span 1 .. n Ethernet
>>       frames, if advertised by TCP socket)
>> 
>>     In principle, all of those parameters could be controlled
>>     per connection. At least, dynamically setting those per
>>     device is highly desirable. Please let's agree on the
>>     most clean solution for that.
>> 
>> We maintain a snapshot of the current code at
>>
>https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_zrlio
>_softiwarp-2Dfor-2Dlinux-2Drdma.git&d=DwICaQ&c=jf_iaSHvJObTbx-siA1ZOg
>&r=2TaYXQ0T-r8ZO1PP1alNwU_QJcRRLfmYTAgd3QCvqSc&m=7ICg1VK6TratuVrcLMEX
>5jrsvgP8SJgNbpkEJtuyHSc&s=uazaVPxlb69Q6XmFwTkfEkCAPz1P7OF2BkxK67ywX1Y
>&e=
>> within branch 'siw-for-rdma-next-nvme-5.0'.
>> This branch is based on the rdma-next tree and additionally
>> includes the latest netlink and portmapper patches from
>> Steve Wise as well as the latest nvme-5.0 code changes from
>> git://git.infradead.org/nvme.git. We tested siw with
>> NVMeF host and target applications and therefor merged
>> with latest nvme development.
>> 
>> The matching siw user library is maintained at
>>
>https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_zrlio
>_softiwarp-2Duser-2Dfor-2Dlinux-2Drdma.git&d=DwICaQ&c=jf_iaSHvJObTbx-
>siA1ZOg&r=2TaYXQ0T-r8ZO1PP1alNwU_QJcRRLfmYTAgd3QCvqSc&m=7ICg1VK6Tratu
>VrcLMEX5jrsvgP8SJgNbpkEJtuyHSc&s=t3URSplWVy22TgOGUGiJnD7O3YLQUK0pgM32
>-MW-_YY&e=.
>> 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'.
>> 
>> 
>> 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
>> 
>>   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        |  415 ++++
>>   drivers/infiniband/sw/siw/siw.h          |  805 ++++++++
>>   drivers/infiniband/sw/siw/siw_ae.c       |  120 ++
>>   drivers/infiniband/sw/siw/siw_cm.c       | 2185
>++++++++++++++++++++++
>>   drivers/infiniband/sw/siw/siw_cm.h       |  156 ++
>>   drivers/infiniband/sw/siw/siw_cq.c       |  150 ++
>>   drivers/infiniband/sw/siw/siw_debug.c    |  467 +++++
>>   drivers/infiniband/sw/siw/siw_debug.h    |   87 +
>>   drivers/infiniband/sw/siw/siw_main.c     |  846 +++++++++
>>   drivers/infiniband/sw/siw/siw_mem.c      |  243 +++
>>   drivers/infiniband/sw/siw/siw_obj.c      |  338 ++++
>>   drivers/infiniband/sw/siw/siw_obj.h      |  200 ++
>>   drivers/infiniband/sw/siw/siw_qp.c       | 1473 +++++++++++++++
>>   drivers/infiniband/sw/siw/siw_qp_rx.c    | 1533 +++++++++++++++
>>   drivers/infiniband/sw/siw/siw_qp_tx.c    | 1340 +++++++++++++
>>   drivers/infiniband/sw/siw/siw_verbs.c    | 1888
>+++++++++++++++++++
>>   drivers/infiniband/sw/siw/siw_verbs.h    |  119 ++
>>   include/uapi/rdma/rdma_user_ioctl_cmds.h |    1 +
>>   include/uapi/rdma/siw_user.h             |  216 +++
>>   23 files changed, 12616 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
>
>Don't forget a MAINTAINERS file update.
>
>-

Absolutely! Thanks for pointing out.

Bernard




[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