On Wed, Jun 05, 2019 at 04:02:45PM +0300, Shamir Rabinovitch wrote: > On Wed, Jun 05, 2019 at 11:25:49AM +0300, Leon Romanovsky wrote: > > On Wed, Jun 05, 2019 at 10:21:26AM +0300, Shamir Rabinovitch wrote: > > > On Thu, May 30, 2019 at 03:24:05PM +0300, Shamir Rabinovitch wrote: > > > > This patch set complete the cleanup done in the driver/verbs/uverbs > > > > where the dependency of the code in the ib_x uobject pointer was > > > > removed. > > > > > > > > The uobject pointer is removed from the ib_pd as last step > > > > before I can start adding the pd sharing code. > > > > > > > > The rdma/netlink code now don't have dependency in the ib_pd > > > > uobject pointer and can report multiple context id that point > > > > to same ib_pd. > > > > > > > > Using iproute2 I can test the modified rdma/netlink: > > > > [root@qemu-fc29 iproute2]# rdma/rdma res show pd dev mlx4_0 > > > > dev mlx4_0 pdn 0 local_dma_lkey 0x8000 users 4 comm [ib_core] > > > > dev mlx4_0 pdn 1 local_dma_lkey 0x8000 users 4 comm [ib_core] > > > > dev mlx4_0 pdn 2 local_dma_lkey 0x8000 users 5 comm [ib_ipoib] > > > > dev mlx4_0 pdn 3 local_dma_lkey 0x8000 users 5 comm [ib_ipoib] > > > > dev mlx4_0 pdn 4 local_dma_lkey 0x8000 users 0 comm [ib_srp] > > > > dev mlx4_0 pdn 5 local_dma_lkey 0x8000 users 0 comm [ib_srpt] > > > > dev mlx4_0 pdn 6 local_dma_lkey 0x0 users 2 ctxn 0 pid 7693 comm ib_send_bw > > > > dev mlx4_0 pdn 7 local_dma_lkey 0x0 users 2 ctxn 1 pid 7694 comm ib_send_bw > > > > > > > > Changelog: > > > > > > > > v1->v2 > > > > * 1 patch from v1 applied (Jason) > > > > * Fix uobj_get_obj_read macro (Jason) > > > > * Do not allocate memory when fixing uobj_get_obj_read (Jason) > > > > * Fix uobj_get_obj_read macro (Jason) > > > > * rdma/netlink can now work as before (Leon) > > > > > > > > v2->v3: > > > > * rdma/netlink nest multiple context ids of same ib_pd (Leon) > > > > > > > > Shamir Rabinovitch (4): > > > > RDMA/uverbs: uobj_get_obj_read should return the ib_uobject > > > > RDMA/uverbs: uobj_put_obj_read macro should be removed > > > > RDMA/nldev: ib_pd can be pointed by multiple ib_ucontext > > > > IB/{core,hw}: ib_pd should not have ib_uobject pointer > > > > > > > > drivers/infiniband/core/nldev.c | 129 +++++++++++- > > > > drivers/infiniband/core/uverbs_cmd.c | 218 +++++++++++++-------- > > > > drivers/infiniband/core/verbs.c | 1 - > > > > drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 1 - > > > > drivers/infiniband/hw/mlx5/main.c | 1 - > > > > drivers/infiniband/hw/mthca/mthca_qp.c | 3 +- > > > > include/rdma/ib_verbs.h | 1 - > > > > include/rdma/uverbs_std_types.h | 11 +- > > > > include/uapi/rdma/rdma_netlink.h | 3 + > > > > 9 files changed, 273 insertions(+), 95 deletions(-) > > > > > > > > -- > > > > 2.20.1 > > > > > > > > > > Jason, Leon, can you please review this patch set ? > > > > I'm sorry for the delay. > > > > > > > > Anything missing from my side here? > > > > Can you please post rdmatool output for shared PD? > > In such case, all those shared PD need to have same PDN. > > Leon I do not have all the pieces in place for this yes. > > I only tested that current rdmatool can cope with netlink message that > has nested context ids as it will happen in shared pd case. Thanks, multiple PDNs worried me and I was afraid that they come from shared PDs. You will still need to mock something to see that you print them correctly. > > I'll do that once we have the export_to_fd & import_pd & import_mr verbs > in place. > > > > > Thanks