> -----Original Message-----
> From: Jason Gunthorpe <j...@nvidia.com>
> Sent: Friday, October 16, 2020 5:18 PM
> To: Xiong, Jianxin <jianxin.xi...@intel.com>
> Cc: linux-r...@vger.kernel.org; dri-devel@lists.freedesktop.org; Doug Ledford 
> <dledf...@redhat.com>; Leon Romanovsky
> <l...@kernel.org>; Sumit Semwal <sumit.sem...@linaro.org>; Christian Koenig 
> <christian.koe...@amd.com>; Vetter, Daniel
> <daniel.vet...@intel.com>
> Subject: Re: [PATCH v5 3/5] RDMA/uverbs: Add uverbs command for dma-buf based 
> MR registration
> 
> On Thu, Oct 15, 2020 at 03:02:55PM -0700, Jianxin Xiong wrote:
> > Implement a new uverbs ioctl method for memory registration with file
> > descriptor as an extra parameter.
> >
> > Signed-off-by: Jianxin Xiong <jianxin.xi...@intel.com>
> > Reviewed-by: Sean Hefty <sean.he...@intel.com>
> > Acked-by: Michael J. Ruhl <michael.j.r...@intel.com>
> > Acked-by: Christian Koenig <christian.koe...@amd.com>
> > Acked-by: Daniel Vetter <daniel.vet...@ffwll.ch>
> > drivers/infiniband/core/uverbs_std_types_mr.c | 112 
> > ++++++++++++++++++++++++++
> >  include/uapi/rdma/ib_user_ioctl_cmds.h        |  14 ++++
> >  2 files changed, 126 insertions(+)
> >
> > diff --git a/drivers/infiniband/core/uverbs_std_types_mr.c
> > b/drivers/infiniband/core/uverbs_std_types_mr.c
> > index 9b22bb5..e54459f 100644
> > +++ b/drivers/infiniband/core/uverbs_std_types_mr.c
> > @@ -1,5 +1,6 @@
> >  /*
> >   * Copyright (c) 2018, Mellanox Technologies inc.  All rights reserved.
> > + * Copyright (c) 2020, Intel Corporation.  All rights reserved.
> >   *
> >   * This software is available to you under a choice of one of two
> >   * licenses.  You may choose to be licensed under the terms of the
> > GNU @@ -178,6 +179,85 @@ static int UVERBS_HANDLER(UVERBS_METHOD_QUERY_MR)(
> >     return IS_UVERBS_COPY_ERR(ret) ? ret : 0;  }
> >
> > +static int UVERBS_HANDLER(UVERBS_METHOD_REG_DMABUF_MR)(
> > +   struct uverbs_attr_bundle *attrs)
> > +{
> > +   struct ib_uobject *uobj =
> > +           uverbs_attr_get_uobject(attrs, 
> > UVERBS_ATTR_REG_DMABUF_MR_HANDLE);
> > +   struct ib_pd *pd =
> > +           uverbs_attr_get_obj(attrs, UVERBS_ATTR_REG_DMABUF_MR_PD_HANDLE);
> > +   struct ib_device *ib_dev = pd->device;
> > +
> > +   u64 start, length, virt_addr;
> > +   u32 fd, access_flags;
> > +   struct ib_mr *mr;
> > +   int ret;
> > +
> > +   if (!ib_dev->ops.reg_user_mr_dmabuf)
> > +           return -EOPNOTSUPP;
> > +
> > +   ret = uverbs_copy_from(&start, attrs,
> > +                          UVERBS_ATTR_REG_DMABUF_MR_ADDR);
> 
> This should be called OFFSET uniformly here and in all the call chain below. 
> Not start and not addr.

Right now it does mean the starting address, but that can be changed.

> 
> > +   if (ret)
> > +           return ret;
> > +
> > +   ret = uverbs_copy_from(&length, attrs,
> > +                          UVERBS_ATTR_REG_DMABUF_MR_LENGTH);
> > +   if (ret)
> > +           return ret;
> > +
> > +   ret = uverbs_copy_from(&virt_addr, attrs,
> > +                          UVERBS_ATTR_REG_DMABUF_MR_HCA_VA);
> 
> I've been trying to call this IOVA

IOVA sounds good to me.

> 
> Jason
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to