All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 net-next 0/6] tcp: implement SACK compression
@ 2018-05-17 21:47 Eric Dumazet
  2018-05-17 21:47 ` [PATCH v3 net-next 1/6] tcp: use __sock_put() instead of sock_put() in tcp_clear_xmit_timers() Eric Dumazet
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Eric Dumazet @ 2018-05-17 21:47 UTC (permalink / raw)
  To: David S . Miller
  Cc: netdev, Toke Høiland-Jørgensen, Neal Cardwell,
	Yuchung Cheng, Soheil Hassas Yeganeh, Eric Dumazet, Eric Dumazet

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2018-05-18 15:48 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-17 21:47 [PATCH v3 net-next 0/6] tcp: implement SACK compression Eric Dumazet
2018-05-17 21:47 ` [PATCH v3 net-next 1/6] tcp: use __sock_put() instead of sock_put() in tcp_clear_xmit_timers() Eric Dumazet
2018-05-17 21:47 ` [PATCH v3 net-next 2/6] tcp: do not force quickack when receiving out-of-order packets Eric Dumazet
2018-05-17 21:47 ` [PATCH v3 net-next 3/6] tcp: add SACK compression Eric Dumazet
2018-05-17 21:57   ` Neal Cardwell
2018-05-17 22:14     ` Yuchung Cheng
2018-05-17 23:24   ` Toke Høiland-Jørgensen
2018-05-17 21:47 ` [PATCH v3 net-next 4/6] tcp: add TCPAckCompressed SNMP counter Eric Dumazet
2018-05-17 21:47 ` [PATCH v3 net-next 5/6] tcp: add tcp_comp_sack_delay_ns sysctl Eric Dumazet
2018-05-17 21:59   ` Neal Cardwell
2018-05-17 21:47 ` [PATCH v3 net-next 6/6] tcp: add tcp_comp_sack_nr sysctl Eric Dumazet
2018-05-17 22:01   ` Neal Cardwell
2018-05-18 15:42 ` [PATCH v3 net-next 0/6] tcp: implement SACK compression David Miller
2018-05-18 15:48   ` Eric Dumazet

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.