]> git.ipfire.org Git - thirdparty/linux.git/commit
gve: fix SW coalescing when hw-GRO is used
authorAnkit Garg <nktgrg@google.com>
Tue, 3 Mar 2026 19:55:47 +0000 (11:55 -0800)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 5 Mar 2026 14:49:51 +0000 (15:49 +0100)
commitea4c1176871fd70a06eadcbd7c828f6cb9a1b0cd
treefb30614f776aeee5874d50093da6e230664af8cf
parente637c244b954426b84340cbc551ca0e2a32058ce
gve: fix SW coalescing when hw-GRO is used

Leaving gso_segs unpopulated on hardware GRO packet prevents further
coalescing by software stack because the kernel's GRO logic marks the
SKB for flush because the expected length of all segments doesn't match
actual payload length.

Setting gso_segs correctly results in significantly more segments being
coalesced as measured by the result of dev_gro_receive().

gso_segs are derived from payload length. When header-split is enabled,
payload is in the non-linear portion of skb. And when header-split is
disabled, we have to parse the headers to determine payload length.

Signed-off-by: Ankit Garg <nktgrg@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Jordan Rhee <jordanrhee@google.com>
Reviewed-by: Harshitha Ramamurthy <hramamurthy@google.com>
Signed-off-by: Joshua Washington <joshwash@google.com>
Link: https://patch.msgid.link/20260303195549.2679070-3-joshwash@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/google/gve/gve_rx_dqo.c