From: Eric Dumazet <eduma...@google.com> Date: Thu, 21 Apr 2016 10:55:23 -0700
> Linux TCP stack painfully segments all TSO/GSO packets before retransmits. > > This was fine back in the days when TSO/GSO were emerging, with their > bugs, but we believe the dark age is over. > > Keeping big packets in write queues, but also in stack traversal > has a lot of benefits. > - Less memory overhead, because write queues have less skbs > - Less cpu overhead at ACK processing. > - Better SACK processing, as lot of studies mentioned how > awful linux was at this ;) > - Less cpu overhead to send the rtx packets > (IP stack traversal, netfilter traversal, drivers...) > - Better latencies in presence of losses. > - Smaller spikes in fq like packet schedulers, as retransmits > are not constrained by TCP Small Queues. > > 1 % packet losses are common today, and at 100Gbit speeds, this > translates to ~80,000 losses per second. > Losses are often correlated, and we see many retransmit events > leading to 1-MSS train of packets, at the time hosts are already > under stress. > > Signed-off-by: Eric Dumazet <eduma...@google.com> > Acked-by: Yuchung Cheng <ych...@google.com> Applied, thanks Eric.