On Thu, Dec 8, 2016 at 10:36 AM, Eric Dumazet <eduma...@google.com> wrote: > On Thu, Dec 8, 2016 at 10:24 AM, Paolo Abeni <pab...@redhat.com> wrote: > >> Nice one! This sounds like a relevant improvement! >> >> I'm wondering if it may cause regressions with small value of >> sk_rcvbuf ?!? e.g. with: >> >> netperf -t UDP_STREAM -H 127.0.0.1 -- -s 1280 -S 1280 -m 1024 -M 1024 >> > > Possibly, then simply we can refine the test to : > > size = up->forward_deficit; > if (size < (sk->sk_rcvbuf >> 2) && !skb_queue_empty(sk->sk_receive_buf)) > return;
BTW, I tried : lpaa6:~# ./netperf -t UDP_STREAM -H 127.0.0.1 -- -s 1280 -S 1280 -m 1024 -M 1024 MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 127.0.0.1 () port 0 AF_INET Socket Message Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs # # 10^6bits/sec 4608 1024 10.00 4499400 0 3685.88 2560 10.00 4498670 3685.28 So it looks like it is working. However I have no doubt there might be a corner case for tiny SO_RCVBUF values or for some message sizes.