Re: [PATCH rdma-next 15/16] RDMA/restrack: Implement software ID interface

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

 



On Tue, Jan 15, 2019 at 01:22:43PM -0800, Matthew Wilcox wrote:
> On Tue, Jan 15, 2019 at 02:15:41PM -0700, Jason Gunthorpe wrote:
> > Matt, down the road can we get an xa_alloc_cyclic helper that handles
> > this and the required locking? I have another need in the works as
> > well..
> 
> http://git.infradead.org/users/willy/linux-dax.git/shortlog/refs/heads/xarray-conv
> 
> all current users of idr_alloc_cyclic are converted to xa_alloc_cyclic()
> in that tree.

Maybe this is what your commit comment was talking about:

int __xa_alloc_cyclic(struct xarray *xa, u32 *id, void *entry,
                 const struct xa_limit *limit, u32 *next, gfp_t gfp)
{
         XA_LIMIT(tmp, *next, limit->max);

I would have expected to be:

         XA_LIMIT(tmp, min(limit->min, *next), limit->max);

I think it is a very surprising API design that the limit is not
respected in all cases.

Since going below the limit also disables the 'cyclic' part of this
function, why shouldn't callers have to use straight xa_alloc (or
__xa_alloc if they need atomic next updates)??

... Leon, Matt's version is shorter than yours maybe just include it
as a static in your module and we can replace it when Matt's is
merged?

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