netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 net-next 0/2]  udp_tunnel: GRO optimizations
@ 2025-03-07 18:13 Paolo Abeni
  2025-03-07 18:13 ` [PATCH v2 net-next 1/2] udp_tunnel: create a fastpath GRO lookup Paolo Abeni
  2025-03-07 18:13 ` [PATCH v2 net-next 2/2] udp_tunnel: use static call for GRO hooks when possible Paolo Abeni
  0 siblings, 2 replies; 10+ messages in thread
From: Paolo Abeni @ 2025-03-07 18:13 UTC (permalink / raw)
  To: netdev
  Cc: Willem de Bruijn, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Simon Horman, David Ahern

The UDP tunnel GRO stage is source of measurable overhead for workload
based on UDP-encapsulated traffic: each incoming packets requires a full
UDP socket lookup and an indirect call.

In the most common setups a single UDP tunnel device is used. In such
case we can optimize both the lookup and the indirect call.

Patch 1 tracks per netns the active UDP tunnels and replaces the socket
lookup with a single destination port comparison when possible.

Patch 2 tracks the different types of UDP tunnels and replaces the
indirect call with a static one when there is a single UDP tunnel type
active.

I measure ~5% performance improvement in TCP over UDP tunnel stream
tests on top of this series.

---
v1 -> v2:
 - fixed a couple of typos
 - fixed UDP_TUNNEL=n build
 - clarified design choices 
 (see the individual patches changelog for more details)
 v1: https://lore.kernel.org/netdev/cover.1741275846.git.pabeni@redhat.com/

Paolo Abeni (2):
  udp_tunnel: create a fastpath GRO lookup.
  udp_tunnel: use static call for GRO hooks when possible

 include/linux/udp.h        |  16 ++++
 include/net/netns/ipv4.h   |  11 +++
 include/net/udp.h          |   1 +
 include/net/udp_tunnel.h   |  22 +++++
 net/ipv4/udp.c             |  13 ++-
 net/ipv4/udp_offload.c     | 177 ++++++++++++++++++++++++++++++++++++-
 net/ipv4/udp_tunnel_core.c |  14 +++
 net/ipv6/udp.c             |   2 +
 net/ipv6/udp_offload.c     |   5 ++
 9 files changed, 259 insertions(+), 2 deletions(-)

-- 
2.48.1


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

end of thread, other threads:[~2025-03-10 11:29 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-07 18:13 [PATCH v2 net-next 0/2] udp_tunnel: GRO optimizations Paolo Abeni
2025-03-07 18:13 ` [PATCH v2 net-next 1/2] udp_tunnel: create a fastpath GRO lookup Paolo Abeni
2025-03-08 18:37   ` Willem de Bruijn
2025-03-09 15:55     ` Paolo Abeni
2025-03-10  3:51       ` Willem de Bruijn
2025-03-10 11:29         ` Paolo Abeni
2025-03-07 18:13 ` [PATCH v2 net-next 2/2] udp_tunnel: use static call for GRO hooks when possible Paolo Abeni
2025-03-08 18:40   ` Willem de Bruijn
2025-03-09 15:57     ` Paolo Abeni
2025-03-10  3:30       ` Willem de Bruijn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).