> On Sep 26, 2018, at 8:33 PM, David Miller <da...@davemloft.net> wrote:
>
> From: Michael Chan <michael.c...@broadcom.com>
> Date: Wed, 26 Sep 2018 00:41:04 -0400
>
>> The current netpoll implementation in the bnxt_en driver has problems
>> that may miss TX completion events. bnxt_poll_work() in effect is
>> only handling at most 1 TX packet before exiting. In addition,
>> there may be in flight TX completions that ->poll() may miss even
>> after we fix bnxt_poll_work() to handle all visible TX completions.
>> netpoll may not call ->poll() again and HW may not generate IRQ
>> because the driver does not ARM the IRQ when the budget (0 for netpoll)
>> is reached.
>>
>> We fix it by handling all TX completions and to always ARM the IRQ
>> when we exit ->poll() with 0 budget.
>>
>> Also, the logic to ACK the completion ring in case it is almost filled
>> with TX completions need to be adjusted to take care of the 0 budget
>> case, as discussed with Eric Dumazet <eduma...@google.com>
>>
>> Reported-by: Song Liu <songliubrav...@fb.com>
>> Signed-off-by: Michael Chan <michael.c...@broadcom.com>
>
> Applied and queued up for -stable, thanks Michael.
Hi David,
We also need this patch from Eric:
https://marc.info/?l=linux-netdev&m=153780304905946
Thanks,
Song