Re: [PATCH 03/17] RDMA/core: Introduce IB_MR_TYPE_PI and ib_alloc_mr_integrity API

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

 



On Wed, Feb 13, 2019 at 02:41:49AM +0200, Max Gurtovoy wrote:
> 
> On 2/12/2019 5:59 PM, Christoph Hellwig wrote:
> > > @@ -1982,6 +1982,9 @@ struct ib_mr *ib_alloc_mr(struct ib_pd *pd,
> > >   	if (!pd->device->ops.alloc_mr)
> > >   		return ERR_PTR(-EOPNOTSUPP);
> > > +	if (WARN_ON_ONCE(mr_type == IB_MR_TYPE_PI))
> > > +		return ERR_PTR(-EINVAL);
> > > +
> > So why is IB_MR_TYPE_PI a separate function, but IB_MR_TYPE_SG_GAPS
> > is not?
> > 
> > I think we either want one alloc/free helper per type, or we have
> > to extend ib_alloc_mr with an arguments structure or something similar.
> 
> my original commit modified the ib_alloc_mr to:
> 
> struct ib_mr *ib_alloc_mr(struct ib_pd *pd,
>                           enum ib_mr_type mr_type,
> -                         u32 max_num_sg)
> +                         u32 max_num_sg, u32 max_num_meta_sg)
> 
> 
> and I also prefer to have 1 allocation function but I guess we should use
> the style that the RDMA maintainers prefer and this is the review I got.
> 
> So Jason/Leon/Doug in case you prefer to extend ib_alloc_mr as I originally
> did, I can do it for V3.

These monster 'do everything' multiplexor functions have turned out to
be a maintenance pain in the past. I'm not sure MR will turn out any
better..

So, CH's 'one alloc/free helper per type' seems like a better
direction. At least the API should be understandable in that
configuration.

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