Re: [PATCH for-next v3 0/4] ib_pd should not have ib_uobject

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

I have to think it is rather a clunky approach..

I keep moving the _cmd flow closer to the attrs flow - so to do that
we should be recording the uobj 'get' in the uverbs_attr_bundle and
then putting them when the handler exits automatically. Just like the
attr flow does.

This requires a bit of moving code around so that the write path has
the bundle_priv which records all of this.

What do you think?

Jason



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux