[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180517214729.186094-1-edumazet@google.com>
Date: Thu, 17 May 2018 14:47:23 -0700
From: Eric Dumazet <edumazet@...gle.com>
To: "David S . Miller" <davem@...emloft.net>
Cc: netdev <netdev@...r.kernel.org>,
Toke Høiland-Jørgensen <toke@...e.dk>,
Neal Cardwell <ncardwell@...gle.com>,
Yuchung Cheng <ycheng@...gle.com>,
Soheil Hassas Yeganeh <soheil@...gle.com>,
Eric Dumazet <edumazet@...gle.com>,
Eric Dumazet <eric.dumazet@...il.com>
Subject: [PATCH v3 net-next 0/6] tcp: implement SACK compression
When TCP receives an out-of-order packet, it immediately sends
a SACK packet, generating network load but also forcing the
receiver to send 1-MSS pathological packets, increasing its
RTX queue length/depth, and thus processing time.
Wifi networks suffer from this aggressive behavior, but generally
speaking, all these SACK packets add fuel to the fire when networks
are under congestion.
This patch series adds SACK compression, but the infrastructure
could be leveraged to also compress ACK in the future.
v2: Addressed Neal feedback.
Added two sysctls to allow fine tuning, or even disabling the feature.
v3: take rtt = min(srtt, rcv_rtt) as Yuchung suggested, because rcv_rtt
can be over estimated for RPC (or sender limited)
Eric Dumazet (6):
tcp: use __sock_put() instead of sock_put() in tcp_clear_xmit_timers()
tcp: do not force quickack when receiving out-of-order packets
tcp: add SACK compression
tcp: add TCPAckCompressed SNMP counter
tcp: add tcp_comp_sack_delay_ns sysctl
tcp: add tcp_comp_sack_nr sysctl
Documentation/networking/ip-sysctl.txt | 13 +++++++++
include/linux/tcp.h | 2 ++
include/net/netns/ipv4.h | 2 ++
include/net/tcp.h | 5 +++-
include/uapi/linux/snmp.h | 1 +
net/ipv4/proc.c | 1 +
net/ipv4/sysctl_net_ipv4.c | 17 ++++++++++++
net/ipv4/tcp.c | 1 +
net/ipv4/tcp_input.c | 38 ++++++++++++++++++++------
net/ipv4/tcp_ipv4.c | 2 ++
net/ipv4/tcp_output.c | 9 ++++++
net/ipv4/tcp_timer.c | 25 +++++++++++++++++
12 files changed, 107 insertions(+), 9 deletions(-)
--
2.17.0.441.gb46fe60e1d-goog
Powered by blists - more mailing lists