mbox series

[for-next,v2,00/13] Implement the xrc transport

Message ID 20220929170836.17838-1-rpearsonhpe@gmail.com (mailing list archive)
Headers show
Series Implement the xrc transport | expand

Message

Bob Pearson Sept. 29, 2022, 5:08 p.m. UTC
This patch series implements the xrc transport for the rdma_rxe driver.
It is based on the current for-next branch of rdma-linux.
The first two patches in the series do some cleanup which is helpful
for this effort. The remaining patches implement the xrc functionality.
There is a matching patch set for the user space rxe provider driver.
The communications between these is accomplished without making an
ABI change by taking advantage of the space freed up by a recent
patch called "Remove redundant num_sge fields" which is a reprequisite
for this patch series.

The two patch sets have been tested with the pyverbs regression test
suite with and without each set installed. This series enables 5 of
the 6 xrc test cases in pyverbs. The ODP case does is currently skipped
but should work once the ODP patch series is accepted.

Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
---
v2
  Rebased to current for-next

Bob Pearson (13):
  RDMA/rxe: Replace START->FIRST, END->LAST
  RDMA/rxe: Move next_opcode() to rxe_opcode.c
  RDMA: Add xrc opcodes to ib_pack.h
  RDMA/rxe: Extend opcodes and headers to support xrc
  RDMA/rxe: Add xrc opcodes to next_opcode()
  RDMA/rxe: Implement open_xrcd and close_xrcd
  RDMA/rxe: Extend srq verbs to support xrcd
  RDMA/rxe: Extend rxe_qp.c to support xrc qps
  RDMA/rxe: Extend rxe_recv.c to support xrc
  RDMA/rxe: Extend rxe_comp.c to support xrc qps
  RDMA/rxe: Extend rxe_req.c to support xrc qps
  RDMA/rxe: Extend rxe_net.c to support xrc qps
  RDMA/rxe: Extend rxe_resp.c to support xrc qps

 drivers/infiniband/sw/rxe/rxe.c        |   2 +
 drivers/infiniband/sw/rxe/rxe_av.c     |   3 +-
 drivers/infiniband/sw/rxe/rxe_comp.c   |  51 +-
 drivers/infiniband/sw/rxe/rxe_hdr.h    |  41 +-
 drivers/infiniband/sw/rxe/rxe_loc.h    |  13 +-
 drivers/infiniband/sw/rxe/rxe_mw.c     |  14 +-
 drivers/infiniband/sw/rxe/rxe_net.c    |  23 +-
 drivers/infiniband/sw/rxe/rxe_opcode.c | 766 +++++++++++++++++++++----
 drivers/infiniband/sw/rxe/rxe_opcode.h |   9 +-
 drivers/infiniband/sw/rxe/rxe_param.h  |   3 +
 drivers/infiniband/sw/rxe/rxe_pool.c   |   8 +
 drivers/infiniband/sw/rxe/rxe_pool.h   |   1 +
 drivers/infiniband/sw/rxe/rxe_qp.c     | 308 ++++++----
 drivers/infiniband/sw/rxe/rxe_recv.c   |  79 ++-
 drivers/infiniband/sw/rxe/rxe_req.c    | 204 +------
 drivers/infiniband/sw/rxe/rxe_resp.c   | 168 ++++--
 drivers/infiniband/sw/rxe/rxe_srq.c    | 131 +++--
 drivers/infiniband/sw/rxe/rxe_verbs.c  |  57 +-
 drivers/infiniband/sw/rxe/rxe_verbs.h  |  20 +-
 include/rdma/ib_pack.h                 |  32 +-
 include/uapi/rdma/rdma_user_rxe.h      |   4 +-
 21 files changed, 1341 insertions(+), 596 deletions(-)


base-commit: cbdae01d8b517b81ed271981395fee8ebd08ba7d

Comments

Jason Gunthorpe Nov. 18, 2022, 5:57 p.m. UTC | #1
On Thu, Sep 29, 2022 at 12:08:24PM -0500, Bob Pearson wrote:
> This patch series implements the xrc transport for the rdma_rxe driver.
> It is based on the current for-next branch of rdma-linux.
> The first two patches in the series do some cleanup which is helpful
> for this effort. The remaining patches implement the xrc functionality.
> There is a matching patch set for the user space rxe provider driver.
> The communications between these is accomplished without making an
> ABI change by taking advantage of the space freed up by a recent
> patch called "Remove redundant num_sge fields" which is a reprequisite
> for this patch series.
> 
> The two patch sets have been tested with the pyverbs regression test
> suite with and without each set installed. This series enables 5 of
> the 6 xrc test cases in pyverbs. The ODP case does is currently skipped
> but should work once the ODP patch series is accepted.
> 
> Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
> ---
> v2
>   Rebased to current for-next
> 
> Bob Pearson (13):
>   RDMA/rxe: Replace START->FIRST, END->LAST
>   RDMA/rxe: Move next_opcode() to rxe_opcode.c
>   RDMA: Add xrc opcodes to ib_pack.h
>   RDMA/rxe: Extend opcodes and headers to support xrc
>   RDMA/rxe: Add xrc opcodes to next_opcode()
>   RDMA/rxe: Implement open_xrcd and close_xrcd
>   RDMA/rxe: Extend srq verbs to support xrcd
>   RDMA/rxe: Extend rxe_qp.c to support xrc qps
>   RDMA/rxe: Extend rxe_recv.c to support xrc
>   RDMA/rxe: Extend rxe_comp.c to support xrc qps
>   RDMA/rxe: Extend rxe_req.c to support xrc qps
>   RDMA/rxe: Extend rxe_net.c to support xrc qps
>   RDMA/rxe: Extend rxe_resp.c to support xrc qps

This doesn't apply anymore, so it needs a rebase. But nothing caught
my eye in it.

If nobody has anything to say I will apply the rebased v3 next week.

Thanks,
Jason