Re: [PATCH rdma-next 14/16] RDMA/counter: Allow manual mode configuration support

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

 



On 01-Apr-19 16:47, Leon Romanovsky wrote:
> On Mon, Apr 01, 2019 at 03:11:26PM +0300, Gal Pressman wrote:
>> On 01-Apr-19 11:47, Leon Romanovsky wrote:
>>> From: Mark Zhang <markz@xxxxxxxxxxxx>
>>>
>>> In manual mode a QP is bound to a counter manually. If counter is not
>>> specified then a new one will be allocated.
>>> Manually mode is enabled when user binds a QP, and disabled when the
>>> last manually bound QP is unbound.
>>> When auto-mode is turned off and there are counters left, manual mode
>>> is enabled so that the user is able to access these counters.
>>
>> IMO, an API to allocate a counter makes more sense than allocating it on the
>> first bind when a counter is not specified.
> 
> This suggestion was raised during internal code review and we decided to
> make users life simple and don't require from them to manage counter
> lifetime. Allocation by users will immediately means that they need
> to deallocate explicitly too. Otherwise we will find ourselves with
> asymmetrical API which is not good. It is unclear who and when will
> call to deallocate.
> 
> The decision to make bind/unbind internally allocate and deallocate
> allowed us to ensure that counter lifetime is strict and managed by the
> kernel.
> 
>> The part about turning off auto mode with counters left seems like a mess, do we
>> really want all these hidden "rules" instead of keeping it simple? Don't let the
>> user change modes when a counter still has resources bind to it.
> 
> There are no any hidden rules, once you disable auto mode, it will
> applicable for new objects only. There are no changes in old and
> already allocated objects.

I think it's better to be explicit than deciding for the user when to
allocate/deallocate his resources, but that's just my opinion..

> 
>>
>>>
>>> Signed-off-by: Mark Zhang <markz@xxxxxxxxxxxx>
>>> Reviewed-by: Majd Dibbiny <majd@xxxxxxxxxxxx>
>>> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
>>> ---
>>> +static int rdma_counter_bind_qp_manual(struct rdma_counter *counter,
>>> +				       struct ib_qp *qp)
>>> +{
>>> +	int ret = 0;
> 
> We will fix this and everything below.
> 
> Thanks
> 



[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