]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
Merge branch 'gro-inline-tcp6_gro_-receive-complete'
authorJakub Kicinski <kuba@kernel.org>
Thu, 22 Jan 2026 03:28:34 +0000 (19:28 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 22 Jan 2026 03:28:35 +0000 (19:28 -0800)
commit9de76f55b9f856b317773e106253051fb33a9e92
treec22b5d9ac23eab395709dfcce832ac9f679a7e6f
parenta4674aa58be53921f2aba62e143cc338d6ab142c
parentb8d9b7daf0af367f3fff017de0873ab825a6dbbe
Merge branch 'gro-inline-tcp6_gro_-receive-complete'

Eric Dumazet says:

====================
gro: inline tcp6_gro_{receive,complete}

On some platforms, GRO stack is too deep and causes cpu stalls.

Decreasing call depths by one shows a 1.5 % gain on Zen2 cpus.
(32 RX queues, 100Gbit NIC, RFS enabled, tcp_rr with 128 threads and 10,000 flows)

We can go further by inlining ipv6_gro_{receive,complete}
and take care of IPv4 if there is interest.

Note: two temporary __always_inline will be replaced with
      inline_for_performance when/if available.

Cumulative size increase for this series (of 3):

$ scripts/bloat-o-meter -t vmlinux.0 vmlinux.3
add/remove: 2/2 grow/shrink: 5/1 up/down: 1572/-471 (1101)
Function                                     old     new   delta
ipv6_gro_receive                            1069    1846    +777
ipv6_gro_complete                            433     733    +300
tcp6_check_fraglist_gro                        -     272    +272
tcp6_gro_complete                            227     306     +79
tcp4_gro_complete                            325     397     +72
ipv6_offload_init                            218     274     +56
__pfx_tcp6_check_fraglist_gro                  -      16     +16
__pfx___skb_incr_checksum_unnecessary         32       -     -32
__skb_incr_checksum_unnecessary              186       -    -186
tcp6_gro_receive                             959     706    -253
Total: Before=22592724, After=22593825, chg +0.00%
====================

Link: https://patch.msgid.link/20260120164903.1912995-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>