Re: [PATCH] IB/mad: Use ID allocator routines to allocate agent number

From: HÃkon Bugge
Date: Thu May 31 2018 - 15:54:14 EST




> On 31 May 2018, at 00:09, Jason Gunthorpe <jgg@xxxxxxxx> wrote:
>
> On Wed, May 30, 2018 at 10:07:16PM +0200, HÃkon Bugge wrote:
>>
>>
>>> On 30 May 2018, at 17:10, Jason Gunthorpe <jgg@xxxxxxxx> wrote:
>>>
>>> On Wed, May 30, 2018 at 02:22:56PM +0200, Hans Westgaard Ry wrote:
>>>
>>>> We came up with this code snippet which we think handles both preventing
>>>> immediate re-use and too big/wrapping...
>>>
>>> Isn't this basically the same as idr_alloc_cyclic ?
>>
>> I draw my statement back. The idr_alloc_cyclic() is the family of idr's that associates a pointer with the bit. Hence, each bit is a bit + 64b.
>>
>> That's why we ended up with Hans' pseudo code.
>
> Okay, fair enough.
>
> Is it worth adding a ida_get_new_cyclic for this?

My initial reaction was "no", but then I found the same cyclic behaviour in drivers/net/ipvlan/ipvlan_main.c

Then in my opinion, it makes sense to create a ida_simple_get_cyclic()


Thxs, HÃkon