[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260206173426.1638518-1-edumazet@google.com>
Date: Fri, 6 Feb 2026 17:34:19 +0000
From: Eric Dumazet <edumazet@...gle.com>
To: "David S . Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>
Cc: Simon Horman <horms@...nel.org>, Neal Cardwell <ncardwell@...gle.com>,
Kuniyuki Iwashima <kuniyu@...gle.com>, David Ahern <dsahern@...nel.org>, netdev@...r.kernel.org,
eric.dumazet@...il.com, Eric Dumazet <edumazet@...gle.com>
Subject: [PATCH net-next 0/7] ipv6: tcp: no longer rebuild fl6 at each transmit
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
Powered by blists - more mailing lists