From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH net v2] bnxt_en: Fix TX timeout during netpoll. Date: Wed, 26 Sep 2018 20:33:04 -0700 (PDT) Message-ID: <20180926.203304.405531282068457495.davem@davemloft.net> References: <1537936864-23472-1-git-send-email-michael.chan@broadcom.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: songliubraving@fb.com, edumazet@google.com, netdev@vger.kernel.org To: michael.chan@broadcom.com Return-path: Received: from shards.monkeyblade.net ([23.128.96.9]:37822 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726262AbeI0JtK (ORCPT ); Thu, 27 Sep 2018 05:49:10 -0400 In-Reply-To: <1537936864-23472-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org List-ID: From: Michael Chan 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 > > Reported-by: Song Liu > Signed-off-by: Michael Chan Applied and queued up for -stable, thanks Michael.