1. 05 Jul, 2019 8 commits
  2. 04 Jul, 2019 6 commits
  3. 03 Jul, 2019 25 commits
  4. 02 Jul, 2019 1 commit
    • Jason Gunthorpe's avatar
      Merge branch 'siw' into rdma.git for-next · c5cfcfcb
      Jason Gunthorpe authored
      Bernard Metzler says:
      
      ====================
      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.
      
      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.
      ====================
      
      * branch 'siw':
        SIW addition to kernel build environment
        SIW completion queue methods
        SIW receive path
        SIW transmit path
        SIW queue pair methods
        SIW application buffer management
        SIW application interface
        SIW connection management
        SIW network and RDMA core interface
        SIW main include file
        iWarp wire packet format
      c5cfcfcb