Eric Dumazet says:
====================
ipv6: misc changes in output path
Small optimizations mostly in ip6_xmit() path.
TX performance increases by about 3 %.
Patches 5-7: add dst4_mtu() and dst6_mtu() to save space.
Last patch colocates inet6_cork in inet_cork_full.
This series reduces kernel size by 494 bytes on x86_64:
scripts/bloat-o-meter -t vmlinux.old vmlinux.new
add/remove: 4/2 grow/shrink: 9/23 up/down: 665/-1159 (-494)
Function old new delta
ip6_finish_output_gso_slowpath_drop - 197 +197
ip6_xmit 1452 1595 +143
do_ipv6_getsockopt 2855 2950 +95
kzalloc_noprof - 55 +55
ip4ip6_err 918 955 +37
__icmp_send 1499 1532 +33
do_ip_getsockopt 2573 2605 +32
__ip6_append_data 4109 4137 +28
__pfx_kzalloc_noprof - 16 +16
__pfx_ip6_finish_output_gso_slowpath_drop - 16 +16
ipmr_prepare_xmit 1232 1238 +6
ip6_forward 1905 1909 +4
ip6_cork_release 108 111 +3
ipv6_push_nfrag_opts 489 486 -3
ipv6_push_frag_opts 90 87 -3
ip6_finish_output2 1446 1437 -9
ip6_tnl_xmit 2639 2627 -12
ip6_default_advmss 176 160 -16
__ip6_rt_update_pmtu 1087 1071 -16
tcp_v6_syn_recv_sock 1715 1696 -19
tcp_v4_syn_recv_sock 1107 1088 -19
__ip_make_skb 1339 1320 -19
ip_setup_cork 406 385 -21
ip6_setup_cork 732 710 -22
rawv6_push_pending_frames 581 556 -25
ip6_push_pending_frames 184 157 -27
udpv6_splice_eof 203 170 -33
ip6_flush_pending_frames 220 183 -37
ip6_append_data 349 312 -37
udp_v6_push_pending_frames 155 115 -40
sit_tunnel_xmit 1957 1914 -43
__pfx_dst_mtu 64 - -64
tcp_v4_mtu_reduced 289 220 -69
tcp_v6_mtu_reduced 209 139 -70
ip6_make_skb 574 484 -90
ip6_finish_output 827 697 -130
dst_mtu 160 - -160
fib6_nh_mtu_change 511 336 -175
Total: Before=
22584400, After=
22583906, chg -0.00%
====================
Link: https://patch.msgid.link/20260130210303.3888261-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>