From: Stephen Hemminger <stephen@networkplumber.org>
To: Tathagat Priyadarshi <tathagat.dpdk@gmail.com>
Cc: dev@dpdk.org, joshwash@google.com
Subject: Re: [PATCH v2 0/4] net/gve: fix Tx queue stalls and sync DQO RDA with Linux driver
Date: Tue, 13 Oct 2026 08:22:30 -0700 [thread overview]
Message-ID: <20261013082230.09f67ddf@phoenix.local> (raw)
In-Reply-To: <20261013104348.714550-1-tathagat.dpdk@gmail.com>
On Tue, 13 Oct 2026 10:43:44 +0000
Tathagat Priyadarshi <tathagat.dpdk@gmail.com> wrote:
> This patch series aligns the Google Virtual NIC (gve) DQO RDA transmit path
> with the upstream Linux kernel driver (drivers/net/ethernet/google/gve/) to
> resolve transmit queue stalls and hardware validation issues:
>
> 1. net/gve: fix DQO descriptor cleaning loop bound
> Fixes the off-by-one error in gve_tx_clean_descs_dqo()
> ("while (--nb_descs)" -> "while (nb_descs--)") and avoids stalling
> the completion queue on unrecognized descriptor types.
>
> 2. net/gve: fix DQO Tx queue stall on multi-seg and TSO
> Tracks descriptor intervals with last_re_idx per packet against
> GVE_TX_MIN_RE_INTERVAL (32) instead of counting packets at burst end,
> preventing descriptor ring starvation and queue deadlocks under
> multi-segment and TSO traffic.
>
> 3. net/gve: add cacheline overlap margin to DQO Tx ring
> Enforces GVE_TX_MIN_DESC_PREVENT_CACHE_OVERLAP (4 descriptors) margin
> in ring space checks, avoiding CPU and device DMA cacheline collisions.
>
> 4. net/gve: add packet and TSO hardware constraints for DQO
> Augments gve_tx_validate_descs() (which enforces the 10-descriptor
> limit per packet or MTU segment) with the remaining hardware length
> constraints: [17, 9728] bytes for non-TSO packets, maximum MSS limit
> (9728 bytes), TSO total length limit (262143 bytes), and validates
> header contiguity and payload presence on TSO packets. Invalid packets
> are dropped instead of stalling the queue.
Looks good you may want to address these comments from AI.
Subject: Re: [PATCH v2 0/4] net/gve: DQO Tx fixes
Applies cleanly to main; every commit builds with -Dwerror=true.
v2 drops invalid packets and continues instead of stalling the burst,
pops the completion tag before writing the TSO context descriptor,
and adds the Fixes tags. All three Fixes hashes resolve.
Info
[PATCH v2 2/4] net/gve: fix DQO Tx queue stall on multi-seg and TSO
1. Ringing the doorbell each time report_event is set is a
performance change, not part of the stall fix. Descriptors posted
earlier in the burst are reclaimed on the next burst either way,
and Linux rings once per xmit batch. It is harmless, but for a
stable backport it is better as a separate patch with numbers. At
least drop "amortizing MMIO writes": it adds MMIO writes.
[PATCH v2 4/4] net/gve: add packet and TSO hardware constraints for DQO
2. tso_total_len is 24 bits wide; 262143 is the hardware limit (see
the comment in the Linux gve_prep_tso()), not the field width.
Reword: "Define GVE_TX_MAX_TSO_LEN_DQO (262143), the hardware limit
on TSO payload length."
3. dropped_pkts is not in tx_xstats_name_offset[], so nothing reports
it; too_many_descs had the same problem. Export it:
{ "dropped_pkts", TX_QUEUE_STATS_OFFSET(dropped_pkts) },
or drop the counter and rely on errors.
4. The commit message lists the diff line by line. Cut it to the
problem (invalid packets stalled the queue; hardware limits were
not enforced) and the fix (drop and continue; the limits enforced).
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
prev parent reply other threads:[~2026-10-13 15:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-12 10:50 [PATCH 0/4] net/gve: fix TX queue stalls and sync DQO RDA with Linux driver Tathagat Priyadarshi
2026-10-12 10:50 ` [PATCH 1/4] net/gve: fix DQO descriptor cleaning loop bound Tathagat Priyadarshi
2026-10-12 10:50 ` [PATCH 2/4] net/gve: fix DQO TX queue stall on multi-seg and TSO Tathagat Priyadarshi
2026-10-12 18:13 ` Joshua Washington
2026-10-12 10:50 ` [PATCH 3/4] net/gve: add cacheline overlap margin to DQO TX ring Tathagat Priyadarshi
2026-10-12 10:50 ` [PATCH 4/4] net/gve: add packet and TSO hardware constraints for DQO Tathagat Priyadarshi
2026-10-12 19:40 ` Joshua Washington
2026-10-12 21:28 ` [PATCH 0/4] net/gve: fix TX queue stalls and sync DQO RDA with Linux driver Stephen Hemminger
2026-10-13 10:43 ` [PATCH v2 0/4] net/gve: fix Tx " Tathagat Priyadarshi
2026-10-13 10:43 ` [PATCH v2 1/4] net/gve: fix DQO descriptor cleaning loop bound Tathagat Priyadarshi
2026-10-13 10:43 ` [PATCH v2 2/4] net/gve: fix DQO Tx queue stall on multi-seg and TSO Tathagat Priyadarshi
2026-10-13 10:43 ` [PATCH v2 3/4] net/gve: add cacheline overlap margin to DQO Tx ring Tathagat Priyadarshi
2026-10-13 10:43 ` [PATCH v2 4/4] net/gve: add packet and TSO hardware constraints for DQO Tathagat Priyadarshi
2026-10-13 15:22 ` Stephen Hemminger [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=20261013082230.09f67ddf@phoenix.local \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=joshwash@google.com \
--cc=tathagat.dpdk@gmail.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.