mbox series

[v3,00/17] Memory window support for rdma_rxe

Message ID 20200820224638.3212-1-rpearson@hpe.com (mailing list archive)
Headers show
Series Memory window support for rdma_rxe | expand

Message

Bob Pearson Aug. 20, 2020, 10:46 p.m. UTC
This set of patches implements the memory windows verbs, local and remote send
operations. Each of these has been tested at a basic level and regressions
tests have been run to see that basic rxe functionality is OK. The rdma-core
pyverbs memory windows test cases run correctly.

I would encourage anyone who has test cases for MWs to run them against
this code and let me know if anything crops up.

There is a matching patch for rdma-core the user space library that is required
to run user space MW applications.

The first two patches clean up checkpatch warnings for the existing rxe source
code. They can be used separately if desired.

The third and fourth patches are a prerequisite for the rest of the set but
are independant and add some WR and WC opcodes to ib_verbs.h and ib_user_verb.h.

The remaining patches implement the memory windows extensions.

Bob Pearson


Bob Pearson (17):
  rdma_rxe: Added SPDX headers to rxe source files
  rdma_rxe: Fixed style warnings
  ib_user_verbs.h: Added ib_uverbs_wc_opcode
  ib_verbs.h: Added missing IB_WR_BIND_MW opcode
  rdma_rxe: Added bind_mw parameters to rxe_send_wr
  rdma_rxe: Added stubs for alloc_mw and dealloc_mw verbs
  rdma_rxe: Separated MR and MW objects.
  rdma_rxe: Added mw object
  rdma_rxe: Extended pools to support both keys and indices
  rdma_rxe: Implemented functional alloc_mw and dealloc_mw APIs
  rdma_rxe: Address an issue with hardened user copy
  rdma_rxe: Added bind mw API stub
  rdma_rxe: Give MR and MW objects indices and keys
  rdma_rxe: Added stub for invalidate mw
  rdma_rxe: Added functional bind and invalidate MW ops
  rdma_rxe: Implemented read/write/atomic access to MW
  rdma_rxe: minor cleanups

 drivers/infiniband/sw/rxe/Makefile          |   1 +
 drivers/infiniband/sw/rxe/rxe.c             |  33 +-
 drivers/infiniband/sw/rxe/rxe.h             |  31 +-
 drivers/infiniband/sw/rxe/rxe_av.c          |  31 +-
 drivers/infiniband/sw/rxe/rxe_comp.c        |  39 +-
 drivers/infiniband/sw/rxe/rxe_cq.c          |  31 +-
 drivers/infiniband/sw/rxe/rxe_hdr.h         |  31 +-
 drivers/infiniband/sw/rxe/rxe_hw_counters.c |  31 +-
 drivers/infiniband/sw/rxe/rxe_hw_counters.h |  31 +-
 drivers/infiniband/sw/rxe/rxe_icrc.c        |  31 +-
 drivers/infiniband/sw/rxe/rxe_loc.h         |  88 ++--
 drivers/infiniband/sw/rxe/rxe_mcast.c       |  31 +-
 drivers/infiniband/sw/rxe/rxe_mmap.c        |  31 +-
 drivers/infiniband/sw/rxe/rxe_mr.c          | 385 ++++++++---------
 drivers/infiniband/sw/rxe/rxe_mw.c          | 431 ++++++++++++++++++++
 drivers/infiniband/sw/rxe/rxe_net.c         |  33 +-
 drivers/infiniband/sw/rxe/rxe_net.h         |  31 +-
 drivers/infiniband/sw/rxe/rxe_opcode.c      |  42 +-
 drivers/infiniband/sw/rxe/rxe_opcode.h      |  32 +-
 drivers/infiniband/sw/rxe/rxe_param.h       |  42 +-
 drivers/infiniband/sw/rxe/rxe_pool.c        | 165 ++++----
 drivers/infiniband/sw/rxe/rxe_pool.h        |  69 ++--
 drivers/infiniband/sw/rxe/rxe_qp.c          |  34 +-
 drivers/infiniband/sw/rxe/rxe_queue.c       |  31 +-
 drivers/infiniband/sw/rxe/rxe_queue.h       |  31 +-
 drivers/infiniband/sw/rxe/rxe_recv.c        |  31 +-
 drivers/infiniband/sw/rxe/rxe_req.c         | 154 +++----
 drivers/infiniband/sw/rxe/rxe_resp.c        | 196 +++++----
 drivers/infiniband/sw/rxe/rxe_srq.c         |  31 +-
 drivers/infiniband/sw/rxe/rxe_sysfs.c       |  31 +-
 drivers/infiniband/sw/rxe/rxe_task.c        |  31 +-
 drivers/infiniband/sw/rxe/rxe_task.h        |  33 +-
 drivers/infiniband/sw/rxe/rxe_verbs.c       | 114 +++---
 drivers/infiniband/sw/rxe/rxe_verbs.h       |  97 ++---
 include/rdma/ib_verbs.h                     |  16 +-
 include/uapi/rdma/ib_user_verbs.h           |  11 +
 include/uapi/rdma/rdma_user_rxe.h           |  50 ++-
 37 files changed, 1233 insertions(+), 1328 deletions(-)
 create mode 100644 drivers/infiniband/sw/rxe/rxe_mw.c