Re: [PATCH v3 net-next 0/6] tcp: implement SACK compression

2018-05-18 Thread Eric Dumazet


On 05/18/2018 08:42 AM, David Miller wrote:

> This looks great, series applied, thanks Eric.
> 
> So now we handle locally terminated traffic well, however we still need
> something that handles traffic flowing through the system.  And for that
> reason the CAKE ACK filter still has merit.
> 
> I completely agree with you that it has to be implemented properly,
> parse all TCP options and the SACK blocks, and pass the ACKs through
> when there are options it doesn't understand or the SACK/timestampe/etc.
> update contains new information that must be passed along and not dropper.
> 
> Thanks again.
> 

Be assured I will carefully review Cake ACK filter ;)

Thanks David !


Re: [PATCH v3 net-next 0/6] tcp: implement SACK compression

2018-05-18 Thread David Miller
From: Eric Dumazet 
Date: Thu, 17 May 2018 14:47:23 -0700

> 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)

This looks great, series applied, thanks Eric.

So now we handle locally terminated traffic well, however we still need
something that handles traffic flowing through the system.  And for that
reason the CAKE ACK filter still has merit.

I completely agree with you that it has to be implemented properly,
parse all TCP options and the SACK blocks, and pass the ACKs through
when there are options it doesn't understand or the SACK/timestampe/etc.
update contains new information that must be passed along and not dropper.

Thanks again.


[PATCH v3 net-next 0/6] tcp: implement SACK compression

2018-05-17 Thread 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