From: Joe Damato <joe@dama.to>
To: netdev@vger.kernel.org
Cc: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, horms@kernel.org,
michael.chan@broadcom.com, pavan.chebbi@broadcom.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH net v5 0/4] bnxt_en: Make RING FREE more robust
Date: Mon, 9 Nov 2026 12:12:02 -0800 [thread overview]
Message-ID: <avIpEpoCYvLHYl3j@devvm20253.cco0.facebook.com> (raw)
In-Reply-To: <20261106191423.4194081-1-joe@dama.to>
On Fri, Nov 06, 2026 at 11:14:16AM -0800, Joe Damato wrote:
> Greetings:
>
> This is a follow up to the previous RFC (linked below).
>
> On two production systems, I saw the following dmesg pattern:
>
> NETDEV WATCHDOG: transmit queue 0 timed out 6073 ms
> Resp cmpl intr err msg: 0x51 x20
> hwrm_ring_free type 1 failed x12
> hwrm_ring_free type 2 failed x8
> AMD-Vi: IO_PAGE_FAULT x3
>
> This suggests that, for some currently unknown reason, TX completions stall
> and the netdev watchdog fires. The driver asks FW to free the rings, this
> times out, but the driver ignores the possible failure and frees ring memory.
> Since the FW didn't respond to the ring free command, it is possible that the
> FW is still DMAing to the memory which was freed.
OK so Sashiko found a lot of random stuff and I thought it might be good to
summarize what I plan on addressing in the next revision in one place.
For v6:
Patch 1:
- Fix commit message
- Return the errno from hwrm_req_send().
Patch 2:
- Only check the response for HWRM_RING_FREE. HWRM_SELFTEST_IRQ and
HWRM_RING_RESET keep the existing behavior.
- Read the valid byte with READ_ONCE(), then dma_rmb() before reading
the rest of the response, including error_code.
- Respect BNXT_HWRM_CTX_SILENT for the new warning.
Patch 3:
- Count a ring as stuck only when no response arrived, not when the
firmware replied with an error.
- Don't stop DMA when BNXT_STATE_IN_FW_RESET or BNXT_STATE_FW_FATAL_COND is
set.
Patch 4:
- Make BNXT_NO_FW_ACCESS() also test BNXT_STATE_DMA_STOPPED.
Update commit messages as needed.
The Sashiko feedback that I think is real, but that I haven't seen in prod or
I think feels more like "new features" instead of bug fix and should be a
series for net-next:
- Making the per queue paths more robust.
- Completion and NQ failures are not counted as stuck.
- The polling path in __hwrm_send() probably needs a dma_rmb between reading
the valid byte and reading the rest of the message.
- bnxt_resume, bnxt_fw_reset_task, and bnxt_io_slot_reset all call
pci_set_master without checking the DMA bit.
- Notifying bnxt_re when DMA is stopped.
If Broadcom or any of the maintainers disagrees and thinks some or all of this
should be part of this series please let me know.
prev parent reply other threads:[~2026-11-09 20:12 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-06 19:14 Joe Damato
2026-11-06 19:14 ` [PATCH net v5 1/4] bnxt_en: return the RING_FREE status to callers Joe Damato
2026-11-07 19:58 ` netdev-bot+sashiko
2026-11-09 17:45 ` Joe Damato
2026-11-09 18:26 ` Michael Chan
2026-11-06 19:14 ` [PATCH net v5 2/4] bnxt_en: check HWRM response if completion never arrives Joe Damato
2026-11-07 19:58 ` netdev-bot+sashiko
2026-11-09 18:05 ` Joe Damato
2026-11-06 19:14 ` [PATCH net v5 3/4] bnxt_en: stop DMA before releasing rings the firmware did not free Joe Damato
2026-11-07 19:58 ` netdev-bot+sashiko
2026-11-09 19:52 ` Joe Damato
2026-11-06 19:14 ` [PATCH net v5 4/4] bnxt_en: refuse to open a device with stopped DMA Joe Damato
2026-11-07 19:58 ` netdev-bot+sashiko
2026-11-09 20:01 ` Joe Damato
2026-11-09 20:12 ` Joe Damato [this message]
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=avIpEpoCYvLHYl3j@devvm20253.cco0.facebook.com \
--to=joe@dama.to \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michael.chan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pavan.chebbi@broadcom.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®