Skip to content

Memory window support for rdma_rxe

Bob Pearson linux-rdma 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest17 patches 16 repliesIn review
  2. v216 patches 2 repliesSuperseded

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/17rdma_rxe: Added SPDX headers to rxe source filesdrivers/infiniband/sw/rxe/rxe.c drivers/infiniband/sw/rxe/rxe.h drivers/infiniband/sw/rxe/rxe_av.c +29 more+96 -8961 reply
2/17rdma_rxe: Fixed style warningsdrivers/infiniband/sw/rxe/rxe_comp.c drivers/infiniband/sw/rxe/rxe_net.c drivers/infiniband/sw/rxe/rxe_qp.c +3 more+15 -141 reply
3/17ib_user_verbs.h: Added ib_uverbs_wc_opcodeinclude/uapi/rdma/ib_user_verbs.h+11 -01 reply
4/17ib_verbs.h: Added missing IB_WR_BIND_MW opcodeinclude/rdma/ib_verbs.h+9 -71 reply
5/17rdma_rxe: Added bind_mw parameters to rxe_send_wrinclude/uapi/rdma/rdma_user_rxe.h+8 -01 reply
6/17rdma_rxe: Added stubs for alloc_mw and dealloc_mw verbsdrivers/infiniband/sw/rxe/Makefile drivers/infiniband/sw/rxe/rxe_loc.h drivers/infiniband/sw/rxe/rxe_mw.c +1 more+32 -01 reply
7/17rdma_rxe: Separated MR and MW objects.drivers/infiniband/sw/rxe/rxe_comp.c drivers/infiniband/sw/rxe/rxe_loc.h drivers/infiniband/sw/rxe/rxe_mr.c +5 more+189 -1980 replies
8/17rdma_rxe: Added mw objectdrivers/infiniband/sw/rxe/rxe.c drivers/infiniband/sw/rxe/rxe_param.h drivers/infiniband/sw/rxe/rxe_pool.c +1 more+21 -51 reply
9/17rdma_rxe: Extended pools to support both keys and indicesdrivers/infiniband/sw/rxe/rxe_pool.c drivers/infiniband/sw/rxe/rxe_pool.h+58 -470 replies
10/17rdma_rxe: Implemented functional alloc_mw and dealloc_mw APIsdrivers/infiniband/sw/rxe/rxe_mw.c drivers/infiniband/sw/rxe/rxe_pool.c drivers/infiniband/sw/rxe/rxe_verbs.h+58 -50 replies
11/17rdma_rxe: Address an issue with hardened user copydrivers/infiniband/sw/rxe/rxe_pool.c drivers/infiniband/sw/rxe/rxe_pool.h+21 -36 replies
12/17rdma_rxe: Added bind mw API stubdrivers/infiniband/sw/rxe/rxe_comp.c drivers/infiniband/sw/rxe/rxe_loc.h drivers/infiniband/sw/rxe/rxe_mw.c +4 more+85 -290 replies
13/17rdma_rxe: Give MR and MW objects indices and keysdrivers/infiniband/sw/rxe/rxe_loc.h drivers/infiniband/sw/rxe/rxe_mr.c drivers/infiniband/sw/rxe/rxe_mw.c +7 more+152 -830 replies
14/17rdma_rxe: Added stub for invalidate mwdrivers/infiniband/sw/rxe/rxe_loc.h drivers/infiniband/sw/rxe/rxe_mr.c drivers/infiniband/sw/rxe/rxe_mw.c +3 more+117 -790 replies
15/17rdma_rxe: Added functional bind and invalidate MW opsdrivers/infiniband/sw/rxe/rxe_mr.c drivers/infiniband/sw/rxe/rxe_mw.c drivers/infiniband/sw/rxe/rxe_verbs.h +1 more+312 -170 replies
16/17rdma_rxe: Implemented read/write/atomic access to MWdrivers/infiniband/sw/rxe/rxe_loc.h drivers/infiniband/sw/rxe/rxe_mr.c drivers/infiniband/sw/rxe/rxe_mw.c +3 more+150 -550 replies
17/17rdma_rxe: minor cleanupsdrivers/infiniband/sw/rxe/rxe.c drivers/infiniband/sw/rxe/rxe_mw.c drivers/infiniband/sw/rxe/rxe_param.h +1 more+20 -113 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

Cover letter [PATCH v3 00/17] Memory window support for rdma_rxe

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
Signature · 1 line
2.25.1