diff options
| author | Eric Dumazet <edumazet@google.com> | 2026-01-20 19:49:02 +0300 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-01-22 06:28:32 +0300 |
| commit | 87737cd76e44fe5d481e7da2021b925191ccab53 (patch) | |
| tree | ef3bd95aebd6d4bb567be9851fc5cd17631d97aa /include | |
| parent | 9bd6ff503077e03fdf3b1a0a55b1427759eb23ac (diff) | |
| download | linux-87737cd76e44fe5d481e7da2021b925191ccab53.tar.xz | |
gro: inline tcp6_gro_receive()
FDO/LTO are unable to inline tcp6_gro_receive() from ipv6_gro_receive()
Make sure tcp6_check_fraglist_gro() is only called only when needed,
so that compiler can leave it out-of-line.
$ scripts/bloat-o-meter -t vmlinux.1 vmlinux.2
add/remove: 2/0 grow/shrink: 3/1 up/down: 1123/-253 (870)
Function old new delta
ipv6_gro_receive 1069 1846 +777
tcp6_check_fraglist_gro - 272 +272
ipv6_offload_init 218 274 +56
__pfx_tcp6_check_fraglist_gro - 16 +16
ipv6_gro_complete 433 435 +2
tcp6_gro_receive 959 706 -253
Total: Before=22592662, After=22593532, chg +0.00%
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260120164903.1912995-3-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/net/gro.h | 3 | ||||
| -rw-r--r-- | include/net/tcp.h | 1 |
2 files changed, 1 insertions, 3 deletions
diff --git a/include/net/gro.h b/include/net/gro.h index b65f631c521d..85e5eeed4c90 100644 --- a/include/net/gro.h +++ b/include/net/gro.h @@ -405,8 +405,7 @@ INDIRECT_CALLABLE_DECLARE(struct sk_buff *udp4_gro_receive(struct list_head *, struct sk_buff *)); INDIRECT_CALLABLE_DECLARE(int udp4_gro_complete(struct sk_buff *, int)); -INDIRECT_CALLABLE_DECLARE(struct sk_buff *udp6_gro_receive(struct list_head *, - struct sk_buff *)); +struct sk_buff *udp6_gro_receive(struct list_head *, struct sk_buff *); INDIRECT_CALLABLE_DECLARE(int udp6_gro_complete(struct sk_buff *, int)); #define indirect_call_gro_receive_inet(cb, f2, f1, head, skb) \ diff --git a/include/net/tcp.h b/include/net/tcp.h index 25143f156957..0941b7b5067c 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -2325,7 +2325,6 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb, INDIRECT_CALLABLE_DECLARE(int tcp4_gro_complete(struct sk_buff *skb, int thoff)); INDIRECT_CALLABLE_DECLARE(struct sk_buff *tcp4_gro_receive(struct list_head *head, struct sk_buff *skb)); INDIRECT_CALLABLE_DECLARE(int tcp6_gro_complete(struct sk_buff *skb, int thoff)); -INDIRECT_CALLABLE_DECLARE(struct sk_buff *tcp6_gro_receive(struct list_head *head, struct sk_buff *skb)); #ifdef CONFIG_INET void tcp_gro_complete(struct sk_buff *skb); #else |
