All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v9 0/3] net: gro: remove network_header use, move p->{flush/flush_id} calculations to L4
@ 2024-05-07 16:23 Richard Gobert
  2024-05-07 16:28 ` [PATCH net-next v9 1/3] net: gro: use cb instead of skb->network_header Richard Gobert
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Richard Gobert @ 2024-05-07 16:23 UTC (permalink / raw)
  To: davem, edumazet, kuba, pabeni, willemdebruijn.kernel, dsahern,
	alexander.duyck, shuah, netdev, linux-kernel, linux-kselftest
  Cc: Richard Gobert

The cb fields network_offset and inner_network_offset are used instead of
skb->network_header throughout GRO.

These fields are then leveraged in the next commit to remove flush_id state
from napi_gro_cb, and stateful code in {ipv6,inet}_gro_receive which may be
unnecessarily complicated due to encapsulation support in GRO. These fields
are checked in L4 instead.

3rd patch adds tests for different flush_id flows in GRO.

v8 -> v9:
 - rename skb_gro_network_offset to skb_gro_receive_network_offset for
   clarification
 - improved code readability in tests and gro_network_flush functions
 - v8:
   https://lore.kernel.org/all/20240506093550.128210-1-richardbgobert@gmail.com/

v7 -> v8:
 - Remove network_header use in gro
 - Re-send commits after the dependent patch to net was applied
 - v7:
   https://lore.kernel.org/all/20240412155533.115507-1-richardbgobert@gmail.com/

v6 -> v7:
 - Moved bug fixes to a separate submission in net
 - Added UDP fwd benchmark
 - v6:
   https://lore.kernel.org/all/20240410153423.107381-1-richardbgobert@gmail.com/

v5 -> v6:
 - Write inner_network_offset in vxlan and geneve
 - Ignore is_atomic when DF=0
 - v5:
   https://lore.kernel.org/all/20240408141720.98832-1-richardbgobert@gmail.com/

v4 -> v5:
 - Add 1st commit - flush id checks in udp_gro_receive segment which can be
   backported by itself
 - Add TCP measurements for the 5th commit
 - Add flush id tests to ensure flush id logic is preserved in GRO
 - Simplify gro_inet_flush by removing a branch
 - v4:
   https://lore.kernel.org/all/202420325182543.87683-1-richardbgobert@gmail.com/

v3 -> v4:
 - Fix code comment and commit message typos
 - v3:
   https://lore.kernel.org/all/f939c84a-2322-4393-a5b0-9b1e0be8ed8e@gmail.com/

v2 -> v3:
 - Use napi_gro_cb instead of skb->{offset}
 - v2:
   https://lore.kernel.org/all/2ce1600b-e733-448b-91ac-9d0ae2b866a4@gmail.com/

v1 -> v2:
 - Pass p_off in *_gro_complete to fix UDP bug
 - Remove more conditionals and memory fetches from inet_gro_flush
 - v1:
   https://lore.kernel.org/netdev/e1d22505-c5f8-4c02-a997-64248480338b@gmail.com/

Richard Gobert (3):
  net: gro: use cb instead of skb->network_header
  net: gro: move L3 flush checks to tcp_gro_receive and udp_gro_receive_segment
  selftests/net: add flush id selftests

 include/net/gro.h                 |  87 ++++++++++++++++---
 net/core/gro.c                    |   3 -
 net/ipv4/af_inet.c                |  45 +---------
 net/ipv4/tcp_offload.c            |  20 ++---
 net/ipv4/udp_offload.c            |  10 +--
 net/ipv6/ip6_offload.c            |  16 +---
 net/ipv6/tcpv6_offload.c          |   3 +-
 tools/testing/selftests/net/gro.c | 138 ++++++++++++++++++++++++++++++
 8 files changed, 227 insertions(+), 95 deletions(-)

-- 
2.36.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-05-10 20:20 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-07 16:23 [PATCH net-next v9 0/3] net: gro: remove network_header use, move p->{flush/flush_id} calculations to L4 Richard Gobert
2024-05-07 16:28 ` [PATCH net-next v9 1/3] net: gro: use cb instead of skb->network_header Richard Gobert
2024-05-07 16:30 ` [PATCH net-next v9 2/3] net: gro: move L3 flush checks to tcp_gro_receive and udp_gro_receive_segment Richard Gobert
2024-05-07 18:08   ` Eric Dumazet
2024-05-09 18:58     ` Richard Gobert
2024-05-10  7:01       ` Eric Dumazet
2024-05-10 20:20         ` Richard Gobert
2024-05-09 14:24   ` Willem de Bruijn
2024-05-09 19:02     ` Richard Gobert
2024-05-07 16:31 ` [PATCH net-next v9 3/3] selftests/net: add flush id selftests Richard Gobert
2024-05-08  0:34 ` [PATCH net-next v9 0/3] net: gro: remove network_header use, move p->{flush/flush_id} calculations to L4 Jakub Kicinski

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.