Re: [PATCH for-next] IB/cma: Introduce rdma_set_min_rnr_timer()

Haakon Bugge
2021-03-31T12:59:35Z

> On 31 Mar 2021, at 14:00, Jason Gunthorpe <jgg@nvidia.com> wrote:
>
> On Wed, Mar 31, 2021 at 10:38:02AM +0000, Haakon Bugge wrote:
>>
>>
>>> On 31 Mar 2021, at 01:12, Jason Gunthorpe <jgg@nvidia.com> wrote:
>>>
>>> On Thu, Mar 25, 2021 at 02:05:47PM +0100, Håkon Bugge wrote:
>>>> Introduce the ability for both user-space and kernel ULPs to adjust
>>>> the minimum RNR Retry timer. The INIT -> RTR transition executed by
>>>> RDMA CM will be used for this adjustment. This avoids an additional
>>>> ib_modify_qp() call.
>>>
>>> Can't userspace override the ibv_modify_qp() call the librdmacm wants
>>> to make to do this?
>>
>> Not sure I understand. The point is, that user-land which intends to
>> set said timer, can do so without an additional ibv_modify_qp()
>> call. May be I should have added:
>
> IIRC in userspace the application has the option to call
> ibv_modify_qp() so it can just change it before it makes the call?

User-space can call ibv_modify_qp, but that call is inherently expensive on some HCA implementations running virtualized. So this commit enables user-space to use rdma_set_option() to set information in the kernel's cm_id such that the required INIT -> RTR transition takes care of the RNR Retry timer value as well - with an additional modify_qp.

Thxs, Håkon

>> Shamelessly-inspired-by: 2c1619edef61 ("IB/cma: Define option to set ack timeout and pack tos_set")
>
> Hmm..
>
> Jason