public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/7] ipv6: tcp: no longer rebuild fl6 at each transmit
@ 2026-02-06 17:34 Eric Dumazet
  2026-02-06 17:34 ` [PATCH net-next 1/7] ipv6: add daddr/final storage in struct ipv6_pinfo Eric Dumazet
                   ` (7 more replies)
  0 siblings, 8 replies; 16+ messages in thread
From: Eric Dumazet @ 2026-02-06 17:34 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski, Paolo Abeni
  Cc: Simon Horman, Neal Cardwell, Kuniyuki Iwashima, David Ahern,
	netdev, eric.dumazet, Eric Dumazet

TCP v6 spends a good amount of time rebuilding a fresh fl6 at each
transmit in inet6_csk_xmit()/inet6_csk_route_socket().

TCP v4 caches the information in inet->cork.fl.u.ip4 instead.

This series changes TCP v6 to behave the same, saving cpu cycles
and reducing cache line misses and stack use.

Eric Dumazet (7):
  ipv6: add daddr/final storage in struct ipv6_pinfo
  ipv6: use np->final in inet6_sk_rebuild_header()
  ipv6: use inet->cork.fl.u.ip6 and np->final in
    ip6_datagram_dst_update()
  ipv6: inet6_csk_xmit() and inet6_csk_update_pmtu() use
    inet->cork.fl.u.ip6
  tcp: populate inet->cork.fl.u.ip6 in tcp_v6_connect()
  tcp: populate inet->cork.fl.u.ip6 in tcp_v6_syn_recv_sock()
  tcp: inet6_csk_xmit() optimization

 include/linux/ipv6.h                |  4 ++
 include/net/inet6_connection_sock.h |  4 +-
 net/ipv6/af_inet6.c                 |  4 +-
 net/ipv6/datagram.c                 | 21 +++++-----
 net/ipv6/inet6_connection_sock.c    | 57 +++++++++++++------------
 net/ipv6/tcp_ipv6.c                 | 64 ++++++++++++++---------------
 6 files changed, 82 insertions(+), 72 deletions(-)

-- 
2.53.0.rc2.204.g2597b5adb4-goog


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

end of thread, other threads:[~2026-02-11  5:10 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-06 17:34 [PATCH net-next 0/7] ipv6: tcp: no longer rebuild fl6 at each transmit Eric Dumazet
2026-02-06 17:34 ` [PATCH net-next 1/7] ipv6: add daddr/final storage in struct ipv6_pinfo Eric Dumazet
2026-02-07 21:36   ` Kuniyuki Iwashima
2026-02-06 17:34 ` [PATCH net-next 2/7] ipv6: use np->final in inet6_sk_rebuild_header() Eric Dumazet
2026-02-07 21:37   ` Kuniyuki Iwashima
2026-02-06 17:34 ` [PATCH net-next 3/7] ipv6: use inet->cork.fl.u.ip6 and np->final in ip6_datagram_dst_update() Eric Dumazet
2026-02-07 21:38   ` Kuniyuki Iwashima
2026-02-06 17:34 ` [PATCH net-next 4/7] ipv6: inet6_csk_xmit() and inet6_csk_update_pmtu() use inet->cork.fl.u.ip6 Eric Dumazet
2026-02-07 21:40   ` Kuniyuki Iwashima
2026-02-06 17:34 ` [PATCH net-next 5/7] tcp: populate inet->cork.fl.u.ip6 in tcp_v6_connect() Eric Dumazet
2026-02-07 21:41   ` Kuniyuki Iwashima
2026-02-06 17:34 ` [PATCH net-next 6/7] tcp: populate inet->cork.fl.u.ip6 in tcp_v6_syn_recv_sock() Eric Dumazet
2026-02-07 21:49   ` Kuniyuki Iwashima
2026-02-06 17:34 ` [PATCH net-next 7/7] tcp: inet6_csk_xmit() optimization Eric Dumazet
2026-02-07 21:50   ` Kuniyuki Iwashima
2026-02-11  5:10 ` [PATCH net-next 0/7] ipv6: tcp: no longer rebuild fl6 at each transmit patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox