ip: process in-order fragments efficiently
This patch changes the runtime behavior of IP defrag queue: incoming in-order fragments are added to the end of the current list/"run" of in-order fragments at the tail. On some workloads, UDP stream performance is substantially improved: RX: ./udp_stream -F 10 -T 2 -l 60 TX: ./udp_stream -c -H <host> -F 10 -T 5 -l 60 with this patchset applied on a 10Gbps receiver: throughput=9524.18 throughput_units=Mbit/s upstream (net-next): throughput=4608.93 throughput_units=Mbit/s Reported-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Peter Oskolkov <posk@google.com> Cc: Eric Dumazet <edumazet@google.com> Cc: Florian Westphal <fw@strlen.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
353c9cb360
commit
a4fd284a1f
@@ -146,7 +146,7 @@ void inet_frag_destroy(struct inet_frag_queue *q)
|
||||
fp = xp;
|
||||
} while (fp);
|
||||
} else {
|
||||
sum_truesize = skb_rbtree_purge(&q->rb_fragments);
|
||||
sum_truesize = inet_frag_rbtree_purge(&q->rb_fragments);
|
||||
}
|
||||
sum = sum_truesize + f->qsize;
|
||||
|
||||
|
Reference in New Issue
Block a user