1. 06 Oct, 2016 6 commits
    • Parav Pandit's avatar
      IB/rxe: improved debug prints & code cleanup · e404f945
      Parav Pandit authored
      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: default avatarParav Pandit <pandit.parav@gmail.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      e404f945
    • Stephen Bates's avatar
      rdma_rxe: Ensure rdma_rxe init occurs at correct time · b9fe856e
      Stephen Bates authored
      There is a problem when CONFIG_RDMA_RXE=y and CONFIG_IPV6=y. This
      results in the rdma_rxe initialization occurring before the IPv6
      services are ready. This patch delays the initialization of rdma_rxe
      until after the IPv6 services are ready. This fix is based on one
      proposed by Logan Gunthorpe on a much older code base.
      Signed-off-by: default avatarStephen Bates <sbates@raithlin.com>
      Reviewed-by: default avatarYonatan Cohen <yonatanc@mellanox.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      b9fe856e
    • Parav Pandit's avatar
      IB/rxe: Properly honor max IRD value for rd/atomic. · b6bbee0d
      Parav Pandit authored
      This patch honoris the max incoming read request count instead of
      outgoing read req count
      (a) during modify qp by allocating response queue metadata
      (b) during incoming read request processing
      Signed-off-by: default avatarParav Pandit <pandit.parav@gmail.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      b6bbee0d
    • Parav Pandit's avatar
      IB/{rxe,core,rdmavt}: Fix kernel crash for reg MR · d9703650
      Parav Pandit authored
      This patch fixes below kernel crash on memory registration for rxe
      and other transport drivers which has dma_ops extension.
      
      IB/core invokes ib_map_sg_attrs() in generic manner with dma attributes
      which is used by mlx5 and mthca adapters.  However in doing so it
      ignored honoring dma_ops extension of software based transports for
      sg map/unmap operation.  This results in calling dma_map_sg_attrs of
      hardware virtual device resulting in crash for null reference.
      
      We extend the core to support sg_map/unmap_attrs and transport drivers
      to implement those dma_ops callback functions.
      
      Verified usign perftest applications.
      
      BUG: unable to handle kernel NULL pointer dereference at           (null)
      IP: [<ffffffff81032a75>] check_addr+0x35/0x60
      ...
      Call Trace:
       [<ffffffff81032b39>] ? nommu_map_sg+0x99/0xd0
       [<ffffffffa02b31c6>] ib_umem_get+0x3d6/0x470 [ib_core]
       [<ffffffffa01cc329>] rxe_mem_init_user+0x49/0x270 [rdma_rxe]
       [<ffffffffa01c793a>] ? rxe_add_index+0xca/0x100 [rdma_rxe]
       [<ffffffffa01c995f>] rxe_reg_user_mr+0x9f/0x130 [rdma_rxe]
       [<ffffffffa00419fe>] ib_uverbs_reg_mr+0x14e/0x2c0 [ib_uverbs]
       [<ffffffffa003d3ab>] ib_uverbs_write+0x15b/0x3b0 [ib_uverbs]
       [<ffffffff811e92a6>] ? mem_cgroup_commit_charge+0x76/0xe0
       [<ffffffff811af0a9>] ? page_add_new_anon_rmap+0x89/0xc0
       [<ffffffff8117e6c9>] ? lru_cache_add_active_or_unevictable+0x39/0xc0
       [<ffffffff811f0da8>] __vfs_write+0x28/0x120
       [<ffffffff811f1239>] ? rw_verify_area+0x49/0xb0
       [<ffffffff811f1492>] vfs_write+0xb2/0x1b0
       [<ffffffff811f27d6>] SyS_write+0x46/0xa0
       [<ffffffff814f7d32>] entry_SYSCALL_64_fastpath+0x1a/0xa4
      Signed-off-by: default avatarParav Pandit <pandit.parav@gmail.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      d9703650
    • Parav Pandit's avatar
      IB/rxe: Fix sending out loopback packet on netdev interface. · ffae955d
      Parav Pandit authored
      Both prepare4 and prepare6 sets loopback mask in pkt_info structure
      instance of skb.  The xmit_packet and other requester side functions
      use a pkt_info struct from the stack without the proper mask.  This
      results in sending out the packet to the actual netdev device and
      loopback functionality is broken.
      
      Modify prepare() to pass its correctly marked pkt_info struct to
      prepare4() and prepare6() instead of them using SKB_TO_PKT(skb) and
      getting an incorrectly set mask.
      
      Verified with perftest applications.
      Signed-off-by: default avatarParav Pandit <pandit.parav@gmail.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      ffae955d
    • Parav Pandit's avatar
      IB/rxe: Avoid scheduling tasklet for userspace QP · 063af595
      Parav Pandit authored
      This patch avoids scheduing tasklet for WQE and protocol processing
      for user space QP. It performs the task in calling process context.
      
      To improve code readability kernel specific post_send handling moved to
      post_send_kernel() function.
      Signed-off-by: default avatarParav Pandit <pandit.parav@gmail.com>
      Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
      063af595
  2. 03 Oct, 2016 1 commit
  3. 02 Oct, 2016 33 commits