On Mon, Feb 19, 2018 at 2:56 PM Eric Dumazet <eduma...@google.com> wrote:
> 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.

> Eric Dumazet (6):
>     tcp: switch to GSO being always on
>     tcp: remove sk_can_gso() use
>     tcp: remove sk_check_csum_caps()
>     tcp: tcp_sendmsg() only deals with CHECKSUM_PARTIAL
>     tcp: remove dead code from tcp_set_skb_tso_segs()
>     tcp: remove dead code after CHECKSUM_PARTIAL adoption

Acked-by: Soheil Hassas Yeganeh <soh...@google.com>

Very nice patch-series! Thank you, Eric!

>    include/net/sock.h    | 10 +-------
>    net/core/sock.c       |  2 +-
>    net/ipv4/tcp.c        | 57 ++++++++++++-------------------------------
>    net/ipv4/tcp_input.c  |  3 ---
>    net/ipv4/tcp_ipv4.c   | 13 +++-------
>    net/ipv4/tcp_output.c | 40 +++++-------------------------
>    6 files changed, 26 insertions(+), 99 deletions(-)
> --
> 2.16.1.291.g4437f3f132-goog

Reply via email to