[PATCH v2] net/bnxt: add Tx DMA error stat counter
Stephen Hemminger
stephen at networkplumber.org
Mon Sep 21 17:51:25 CEST 2026
On Sun, 20 Sep 2026 20:27:03 -0600
Mohammad Shuab Siddique <mohammad-shuab.siddique at broadcom.com> wrote:
> From: Mohammad Shuab Siddique <mohammad-shuab.siddique at broadcom.com>
>
> Hardware already reports an invalid/bad DMA address on a Tx BD via
> the TX_CMPL_ERRORS_DMA_ERROR bit in the Tx completion record, but the
> driver never inspected it, so a bad mbuf->buf_iova on Tx completed
> silently with no visibility.
>
> Check the bit in bnxt_handle_tx_cp() and in the AVX2/SSE vector
> Tx-completion handlers, and count occurrences in a new per-queue
> tx_dma_err counter. The counter is folded into the standard oerrors
> stat and also exposed as a named xstat (tx_dma_err_pkts) for
> finer-grained visibility.
>
> Signed-off-by: Mohammad Shuab Siddique <mohammad-shuab.siddique at broadcom.com>
> ---
[PATCH v2] net/bnxt: add Tx DMA error stat counter
Warning: tx_dma_err is a per-queue, single-writer counter but uses
rte_atomic_fetch_add_explicit() in the completion fast path. That is
a locked RMW for no benefit. Use a plain increment. The existing
tx_mbuf_drop pattern is not a reason to extend it.
Warning: bnxt_handle_tx_cp_vec() in bnxt_rxtx_vec_neon.c is not
updated. arm64 never counts DMA errors.
Warning: the release note says "per-queue xstat", but the patch
exposes a single port-wide sum. Fix one or the other.
Info: "tx_dma_err_pkts" counts completions, not packets. Vector
completions cover opaque packets, and with the following coalescing
patch one completion covers many. Rename the xstat or count packets.
More information about the dev
mailing list