[PATCH v1 00/24] Shared PD and MR

Yuval Shaia
2019-08-21T14:22:18Z

Following patch-set introduce the shared object feature.

A shared object feature allows one process to create HW objects (currently
PD and MR) so that a second process can import.

Patch-set is logically splits to 4 parts as the following:
- patches 1 to 7 and 18 are preparation steps.
- patches 8 to 14 are the implementation of import PD
- patches 15 to 17 are the implementation of the verb
- patches 19 to 24 are the implementation of import MR

v0 -> v1:
* Delete the patch "IB/uverbs: ufile must be freed only when not
used anymore". The process can die, the ucontext remains until
last reference to it is closed.
* Rebase to latest for-next branch

Shamir Rabinovitch (16):
RDMA/uverbs: uobj_get_obj_read should return the ib_uobject
RDMA/uverbs: Delete the macro uobj_put_obj_read
RDMA/nldev: ib_pd can be pointed by multiple ib_ucontext
IB/{core,hw}: ib_pd should not have ib_uobject pointer
IB/core: ib_uobject need HW object reference count
IB/uverbs: Helper function to initialize ufile member of
uverbs_attr_bundle
IB/uverbs: Add context import lock/unlock helper
IB/verbs: Prototype of HW object clone callback
IB/mlx4: Add implementation of clone_pd callback
IB/mlx5: Add implementation of clone_pd callback
RDMA/rxe: Add implementation of clone_pd callback
IB/uverbs: Add clone reference counting to ib_pd
IB/uverbs: Add PD import verb
IB/mlx4: Enable import from FD verb
IB/mlx5: Enable import from FD verb
RDMA/rxe: Enable import from FD verb

Yuval Shaia (8):
IB/core: Install clone ib_pd in device ops
IB/core: ib_mr should not have ib_uobject pointer
IB/core: Install clone ib_mr in device ops
IB/mlx4: Add implementation of clone_pd callback
IB/mlx5: Add implementation of clone_pd callback
RDMA/rxe: Add implementation of clone_pd callback
IB/uverbs: Add clone reference counting to ib_mr
IB/uverbs: Add MR import verb

drivers/infiniband/core/device.c | 2 +
drivers/infiniband/core/nldev.c | 127 ++++-
drivers/infiniband/core/rdma_core.c | 23 +-
drivers/infiniband/core/uverbs.h | 2 +
drivers/infiniband/core/uverbs_cmd.c | 489 +++++++++++++++---
drivers/infiniband/core/uverbs_main.c | 1 +
drivers/infiniband/core/uverbs_std_types_mr.c | 1 -
drivers/infiniband/core/verbs.c | 4 -
drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 1 -
drivers/infiniband/hw/mlx4/main.c | 18 +-
drivers/infiniband/hw/mlx5/main.c | 34 +-
drivers/infiniband/hw/mthca/mthca_qp.c | 3 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 5 +
include/rdma/ib_verbs.h | 43 +-
include/rdma/uverbs_std_types.h | 11 +-
include/uapi/rdma/ib_user_verbs.h | 15 +
include/uapi/rdma/rdma_netlink.h | 3 +
17 files changed, 669 insertions(+), 113 deletions(-)

--
2.20.1