[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180926.203304.405531282068457495.davem@davemloft.net>
Date: Wed, 26 Sep 2018 20:33:04 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: michael.chan@...adcom.com
Cc: songliubraving@...com, edumazet@...gle.com, netdev@...r.kernel.org
Subject: Re: [PATCH net v2] bnxt_en: Fix TX timeout during netpoll.
From: Michael Chan <michael.chan@...adcom.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 <edumazet@...gle.com>
>
> Reported-by: Song Liu <songliubraving@...com>
> Signed-off-by: Michael Chan <michael.chan@...adcom.com>
Applied and queued up for -stable, thanks Michael.
Powered by blists - more mailing lists