Message ID | b0e4edb7b91f171c7119891d3c61040b8c56596e.1661428921.git.asml.silence@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 47cf88993c910840d565631ad906abdca9168231 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: unify alloclen calculation for paged requests | expand |
Hello: This patch was applied to netdev/net-next.git (master) by Paolo Abeni <pabeni@redhat.com>: On Thu, 25 Aug 2022 13:06:31 +0100 you wrote: > Consolidate alloclen and pagedlen calculation for zerocopy and normal > paged requests. The current non-zerocopy paged version can a bit > overallocate and unnecessary copy a small chunk of data into the linear > part. > > Cc: Willem de Bruijn <willemb@google.com> > Link: https://lore.kernel.org/netdev/CA+FuTSf0+cJ9_N_xrHmCGX_KoVCWcE0YQBdtgEkzGvcLMSv7Qw@mail.gmail.com/ > Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> > > [...] Here is the summary with links: - [net-next] net: unify alloclen calculation for paged requests https://git.kernel.org/netdev/net-next/c/47cf88993c91 You are awesome, thank you!
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index d7bd1daf022b..14f7c4dadbf3 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -1109,10 +1109,7 @@ static int __ip_append_data(struct sock *sk, (fraglen + alloc_extra < SKB_MAX_ALLOC || !(rt->dst.dev->features & NETIF_F_SG))) alloclen = fraglen; - else if (!zc) { - alloclen = min_t(int, fraglen, MAX_HEADER); - pagedlen = fraglen - alloclen; - } else { + else { alloclen = fragheaderlen + transhdrlen; pagedlen = datalen - transhdrlen; } diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index f152e51242cb..a60176e913a8 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -1648,10 +1648,7 @@ static int __ip6_append_data(struct sock *sk, (fraglen + alloc_extra < SKB_MAX_ALLOC || !(rt->dst.dev->features & NETIF_F_SG))) alloclen = fraglen; - else if (!zc) { - alloclen = min_t(int, fraglen, MAX_HEADER); - pagedlen = fraglen - alloclen; - } else { + else { alloclen = fragheaderlen + transhdrlen; pagedlen = datalen - transhdrlen; }
Consolidate alloclen and pagedlen calculation for zerocopy and normal paged requests. The current non-zerocopy paged version can a bit overallocate and unnecessary copy a small chunk of data into the linear part. Cc: Willem de Bruijn <willemb@google.com> Link: https://lore.kernel.org/netdev/CA+FuTSf0+cJ9_N_xrHmCGX_KoVCWcE0YQBdtgEkzGvcLMSv7Qw@mail.gmail.com/ Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> --- net/ipv4/ip_output.c | 5 +---- net/ipv6/ip6_output.c | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-)