From: Eric Dumazet <eric.duma...@gmail.com> Date: Tue, 19 Apr 2016 17:49:50 -0700
> On Tue, 2016-04-19 at 20:36 -0400, David Miller wrote: >> From: Eric Dumazet <eduma...@google.com> >> Date: Mon, 18 Apr 2016 13:56:12 -0700 >> >> > 1 % packet losses are common today, and at 100Gbit speeds, this >> > translates to ~80,000 losses per second. If we are unlucky and >> > first MSS of a 45-MSS TSO is lost, we are cooking 44 MSS segments >> > at rtx instead of a single 44-MSS TSO packet. >> >> I'm having trouble understanding this. >> >> If the first mss is lost, then we simply chop the 45 MSS TSO skb into >> two pieces. The first piece is a 1 MSS chunk for the retransmit, and >> the second piece is remaining 44 MSS TSO skb. >> >> I am pretty sure that is what the current stack does, and regardless >> it is certainly what I intended it to do all those years ago when I >> wrote this code. :-) >> >> The only case where I can see this patch helping is when we have to >> retransmit multi-mss chunks. And yes indeed, it might be a useful >> optimization to TSO those frames rather than sending them one MSS at a >> time. > > Yeah, it looks like I got the changelog wrong. We definitely see these > 1-MSS splits during retransmits all the time, and we had to change the > sch_fq flow_limit from 100 to 1000 packets to cope with that. (TCP Small > Queues does not guard TCP from sending hundred of rtx at the same time) Ok, please rewrite the commit log message so that it is more accuate. Thank you.