[PATCH 1/6] IB/core: add support for draining Shared receive queues

Max Gurtovoy mgurtovoy at nvidia.com
Wed Jun 19 04:12:51 PDT 2024


On 19/06/2024 12:14, Sagi Grimberg wrote:
>
>
> On 18/06/2024 19:07, Bart Van Assche wrote:
>> On 6/17/24 5:10 PM, Max Gurtovoy wrote:
>>> +    if (wait_for_completion_timeout(&qp->srq_completion, 10 * HZ) > 
>>> 0) {
>
> I think this warrants a comment to why you stop after consuming 
> cq->cqe completions
> (i.e. shared completions).
>
There is a full explanation in the function documentation.


>>> +        while (polled != cq->cqe) {
>>> +            n = ib_process_cq_direct(cq, cq->cqe - polled);
>>> +            if (!n)
>>> +                return;
>>> +            polled += n;
>>> +        }
>>> +    }
>>
>> Why a hardcoded timeout (10 * HZ) instead of waiting forever?
>
> Agreed. Is there a scenario where the IB event is missed or something?

I can change it to (60 * HZ) instead.

I prefer not waiting forever and getting a stuck kernel if the 
underlying device is defected.




More information about the Linux-nvme mailing list