From: Stephen Hemminger <stephen@networkplumber.org>
To: Joshua Washington <joshwash@google.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH v2 0/4] net/gve: TSO descriptor count fixes for GVE DQO
Date: Mon, 2 Nov 2026 08:45:59 +0100 [thread overview]
Message-ID: <20261102084559.1e58036c@stephen-xps.local> (raw)
In-Reply-To: <20261030184304.508282-1-joshwash@google.com>
On Fri, 30 Oct 2026 11:42:59 -0700
Joshua Washington <joshwash@google.com> wrote:
> https://inbox.dpdk.org/dev/20250707231812.1937260-7-joshwash@google.com/
> introduced descriptor limit checks for TSO packets in DPDK.
> Unfortunately, a couple of bugs have been found in the implementation.
>
> This patch series introduces fixes for those bugs while correcting the
> overly restrictive behavior recently introduced mandating that all
> headers be in the same buffer.
>
> The final patch in the series introduces tx_pkt_prepare as an option to
> ensure that there is a way to get a clear signal of when packets violate
> hardware limitations. Before a recently introduced patch, the GVE
> behavior was to stop transmitting at the first invalid packet, which
> would allow the application to do any necessary linearization or packet
> modification before attempting to transmit again. It turns out that that
> behavior is considered incorrect, so offer tx_pkt_prepare as an
> alternative.
>
> Depends-on: series-39707 ("net/gve: fix DQO Tx queue stalls")
You dont need Fixes for anything that changed during 26.11 development
window. Only for changes that need backports.
AI review also mentioned.
Review: [PATCH v2 0/4] net/gve: DQO TSO validation fixes
Applied to next-net (339c992f25) with no conflicts. Each commit
builds with -Dwerror=true.
Patches 1/4 and 4/4 look correct. The seg_offset change in 1/4
matches the descriptor layout: the first seg_remain bytes close out
the open segment, and only the rest is divided by tso_segsz.
Patch 2/4: net/gve: account for multi-mbuf headers when validating TSO
Warning: stale comment in gve_tx_validate_pkt_limits().
The data_len < headlen check is gone, but the comment above it
still says the headers must be "contained in the first segment".
Update it:
/* TSO headers may span up to GVE_TX_MAX_HEADER_DESCS_TSO
* buffers; the payload must not be empty.
*/
Patch 3/4: net/gve: introduce Tx packet preparation for DQO format
Warning: tx_prepare rejects every TSO packet whose headers span
mbufs, which makes the relaxation in 2/4 unreachable for apps that
call rte_eth_tx_prepare().
GVE_TX_CKSUM_OFFLOAD_MASK_DQO includes RTE_MBUF_F_TX_TCP_SEG through
GVE_TX_CKSUM_OFFLOAD_MASK, so "csum && tso" is just "tso". Every TSO
packet therefore goes through rte_net_intel_cksum_prepare(), and
that returns -ENOTSUP when
rte_pktmbuf_data_len(m) < l2_len + l3_len + l4_len
The commit message says "in this case" as if some TSO packets skip
the call. None do. Pick one of these:
- State it plainly: TSO packets that go through tx_prepare must
have all headers in the first segment. Split headers are only
accepted from apps that call tx_burst directly. Then drop the
dead csum variable:
if (tso) {
err = rte_net_intel_cksum_prepare(tx_pkt);
if (err != 0) {
rte_errno = -err;
return i;
}
}
- Or seed the pseudo-header for split headers too: read the
L3/L4 headers with rte_pktmbuf_read() and write the TCP checksum
field into whichever segment holds it.
Info: this adds a tx_pkt_prepare op and tags it Cc: stable. That is
a new driver op, not a bug fix. Stable maintainers may want it
dropped from the backport, or want the commit message to say why
existing apps need it.
next prev parent reply other threads:[~2026-11-02 7:46 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-30 18:42 [PATCH v2 0/4] net/gve: TSO descriptor count fixes for GVE DQO Joshua Washington
2026-10-30 18:43 ` [PATCH v2 1/4] net/gve: fix TSO segment offset calculation Joshua Washington
2026-10-30 18:43 ` [PATCH v2 2/4] net/gve: account for multi-mbuf headers when validating TSO Joshua Washington
2026-10-30 18:43 ` [PATCH v2 3/4] net/gve: introduce Tx packet preparation for DQO format Joshua Washington
2026-10-30 18:43 ` [PATCH v2 4/4] net/gve: validate minimum header length for TSO packets Joshua Washington
2026-11-02 7:45 ` Stephen Hemminger [this message]
2026-11-02 19:40 ` [PATCH v2 0/4] net/gve: TSO descriptor count fixes for GVE DQO Joshua Washington
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=20261102084559.1e58036c@stephen-xps.local \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=joshwash@google.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