All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Jakub Kicinski <kuba@kernel.org>
Cc: davem@davemloft.net, netdev@vger.kernel.org, edumazet@google.com,
	pabeni@redhat.com, andrew+netdev@lunn.ch,
	Alexander Duyck <alexanderduyck@fb.com>
Subject: Re: [PATCH net] eth: fbnic: ring the doorbell if a burst ends in a drop
Date: Wed, 16 Sep 2026 13:35:01 +0100	[thread overview]
Message-ID: <20260916123501.GE51261@horms.kernel.org> (raw)
In-Reply-To: <20260915022327.913218-1-kuba@kernel.org>

On Mon, Sep 14, 2026 at 07:23:27PM -0700, Jakub Kicinski wrote:
> fbnic_tx_map() skips the doorbell write, and the completion request,
> for every packet handed to it with xmit_more set, counting on the
> packet which ends the burst to publish them all. When that packet is
> dropped instead - skb_put_padto(), skb_cow_head() or a DMA mapping
> failure - nothing rings. The descriptors of the preceding packets stay
> invisible to the HW until the next transmit on that queue, which for a
> burst-then-idle workload may never come.
> 
> Remember the meta descriptor of the last packet left without a doorbell
> and flush it from the error paths. The completion request has to be set
> on that descriptor rather than simply writing the tail, otherwise the HW
> would transmit the packets but never report a head, and the ring would
> fill up and stall for good.
> 
> This is very similar to Joe's recent series of fixes for bnxt.
> Not seen in real life, reproduced under QEMU with failure injection.
> 
> Fixes: 9a57bacd574b ("eth: fbnic: Add basic Tx handling")
> Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> ---
> Reproduced under the QEMU fbnic model by failing the DMA mapping of the
> last segment of a software-GSO burst: 21 descriptors (7 packets) stayed
> in the ring with head stuck at 24 and tail at 45, 10094 bytes stuck in
> BQL, and QEMU saw none of the 7 frames.

Reviewed-by: Simon Horman <horms@kernel.org>


  reply	other threads:[~2026-09-16 12:35 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-15  2:23 [PATCH net] eth: fbnic: ring the doorbell if a burst ends in a drop Jakub Kicinski
2026-09-16 12:35 ` Simon Horman [this message]
2026-09-17  0:40 ` patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260916123501.GE51261@horms.kernel.org \
    --to=horms@kernel.org \
    --cc=alexanderduyck@fb.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.