Re: [PATCH RFC v2 3/3] udp: Support UDP fraglist GRO/GSO.
From: Paolo Abeni <pabeni@redhat.com>
Date: 2019-01-28 16:37:28
Hi, On Mon, 2019-01-28 at 09:50 +0100, Steffen Klassert wrote:
quoted hunk ↗ jump to hunk
diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c index 584635db9231..c0be33216750 100644 --- a/net/ipv4/udp_offload.c +++ b/net/ipv4/udp_offload.c
[...]
quoted hunk ↗ jump to hunk
@@ -379,8 +397,17 @@ static struct sk_buff *udp_gro_receive_segment(struct list_head *head, * Under small packet flood GRO count could elsewhere grow a lot * leading to execessive truesize values */ - if (!skb_gro_receive(p, skb) && - NAPI_GRO_CB(p)->count >= UDP_GRO_CNT_MAX) + if (NAPI_GRO_CB(skb)->is_flist) { + if (!pskb_may_pull(skb, skb_gro_offset(skb))) + return NULL; + ret = skb_gro_receive_list(p, skb); + } else { + skb_gro_postpull_rcsum(skb, uh, sizeof(struct udphdr)); + + ret = skb_gro_receive(p, skb); + } + + if (!ret && NAPI_GRO_CB(p)->count > UDP_GRO_CNT_MAX)
^^ Minor nitpick: here we may want to preserve the '>=' operator. Note: I've not finished looking at the patches yet, I'll try to provide some benck-marking and it will take some time. Cheers, Paolo