From: Eric Dumazet <eduma...@google.com> Date: Mon, 19 Feb 2018 11:56:46 -0800
> Switching TCP to GSO mode, relying on core networking layers > to perform eventual adaptation for dumb devices was overdue. > > 1) Most TCP developments are done with TSO in mind. > 2) Less high-resolution timers needs to be armed for TCP-pacing > 3) GSO can benefit of xmit_more hint > 4) Receiver GRO is more effective (as if TSO was used for real on sender) > -> less ACK packets and overhead. > 5) Write queues have less overhead (one skb holds about 64KB of payload) > 6) SACK coalescing just works. (no payload in skb->head) > 7) rtx rb-tree contains less packets, SACK is cheaper. > 8) Removal of legacy code. Less maintenance hassles. > > Note that I have left the sendpage/zerocopy paths, but they probably can > benefit from the same strategy. > > Thanks to Oleksandr Natalenko for reporting a performance issue for > BBR/fq_codel, > which was the main reason I worked on this patch series. Series applied, thanks Eric. SCTP might want to do something similar, and if so we can get rid of sk_can_gso() too.