1. 23 12月, 2016 1 次提交
    • A
      IB/rxe: Drop future atomic/read packets rather than retrying · cbf1f9a4
      Andrew Boyer 提交于
      If the completer is in the middle of a large read operation, one
      lost packet can cause havoc. Going to COMPST_ERROR_RETRY will
      cause the requester to resend the request. After that, any packet
      from the first attempt still in the receive queue will be
      interpreted as an error, restarting the error/retry sequence.
      The transfer will quickly exhaust its retries.
      
      This behavior is very noticeable when doing 512KB reads on a
      QEMU system configured with 1500B MTU.
      
      Also, a resent request here will prompt the responder on the
      other side to immediately start resending, but the resent
      packets will get stuck in the already-loaded receive queue and
      will never be processed.
      
      Rather than erroring out every time an unexpected future packet
      arrives, just drop it. Eventually the retry timer will send a
      duplicate request; the completer will be able to make progress since
      the queue will start relatively empty.
      Signed-off-by: NAndrew Boyer <andrew.boyer@dell.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      cbf1f9a4
  2. 13 12月, 2016 2 次提交
  3. 07 10月, 2016 1 次提交
    • P
      IB/rxe: improved debug prints & code cleanup · e404f945
      Parav Pandit 提交于
      1. Debugging qp state transitions and qp errors in loopback and
      multiple QP tests is difficult without qp numbers in debug logs.
      This patch adds qp number to important debug logs.
      
      2. Instead of having rxe: prefix in few logs and not having in
      few logs, using uniform module name prefix using pr_fmt macro.
      
      3. Code cleanup for various warnings reported by checkpatch for
      incomplete unsigned data type, line over 80 characters, return
      statements.
      Signed-off-by: NParav Pandit <pandit.parav@gmail.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      e404f945
  4. 17 9月, 2016 1 次提交
  5. 04 8月, 2016 1 次提交
    • M
      Soft RoCE driver · 8700e3e7
      Moni Shoua 提交于
      Soft RoCE (RXE) - The software RoCE driver
      
      ib_rxe implements the RDMA transport and registers to the RDMA core
      device as a kernel verbs provider. It also implements the packet IO
      layer. On the other hand ib_rxe registers to the Linux netdev stack
      as a udp encapsulating protocol, in that case RDMA, for sending and
      receiving packets over any Ethernet device.  This yields a RDMA
      transport over the UDP/Ethernet network layer forming a RoCEv2
      compatible device.
      
      The configuration procedure of the Soft RoCE drivers requires
      binding to any existing Ethernet network device. This is done with
      /sys interface.
      
      A userspace Soft RoCE library (librxe) provides user applications
      the ability to run with Soft RoCE devices.  The use of rxe verbs ins
      user space requires the inclusion of librxe as a device specifics
      plug-in to libibverbs. librxe is packaged separately.
      
      Architecture:
      
           +-----------------------------------------------------------+
           |                          Application                      |
           +-----------------------------------------------------------+
                                  +-----------------------------------+
                                  |             libibverbs            |
      User                        +-----------------------------------+
                                  +----------------+ +----------------+
                                  | librxe         | | HW RoCE lib    |
                                  +----------------+ +----------------+
      +---------------------------------------------------------------+
           +--------------+                           +------------+
           | Sockets      |                           | RDMA ULP   |
           +--------------+                           +------------+
           +--------------+                  +---------------------+
           | TCP/IP       |                  | ib_core             |
           +--------------+                  +---------------------+
                                   +------------+ +----------------+
      Kernel                       | ib_rxe     | | HW RoCE driver |
                                   +------------+ +----------------+
           +------------------------------------+
           | NIC driver                         |
           +------------------------------------+
      
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           +-----------------------------------------------------------+
           |                          Application                      |
           +-----------------------------------------------------------+
                                  +-----------------------------------+
                                  |             libibverbs            |
      User                        +-----------------------------------+
                                  +----------------+ +----------------+
                                  | librxe         | | HW RoCE lib    |
                                  +----------------+ +----------------+
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           +--------------+                           +------------+
           | Sockets      |                           | RDMA ULP   |
           +--------------+                           +------------+
           +--------------+                  +---------------------+
           | TCP/IP       |                  | ib_core             |
           +--------------+                  +---------------------+
                                   +------------+ +----------------+
      Kernel                       | ib_rxe     | | HW RoCE driver |
                                   +------------+ +----------------+
           +------------------------------------+
           | NIC driver                         |
           +------------------------------------+
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      Soft RoCE resources:
      
      [1[ https://github.com/SoftRoCE/librxe-dev librxe - source code in
      Github
      [2] https://github.com/SoftRoCE/rxe-dev/wiki/rxe-dev:-Home - Soft RoCE
      Wiki page
      [3] https://github.com/SoftRoCE/librxe-dev - Soft RoCE userspace library
      Signed-off-by: NKamal Heib <kamalh@mellanox.com>
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NMoni Shoua <monis@mellanox.com>
      Reviewed-by: NHaggai Eran <haggaie@mellanox.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      8700e3e7