linux/net/ipv4
Eric Dumazet 50ce163a72 tcp: tcp_grow_window() needs to respect tcp_space()
For some reason, tcp_grow_window() correctly tests if enough room
is present before attempting to increase tp->rcv_ssthresh,
but does not prevent it to grow past tcp_space()

This is causing hard to debug issues, like failing
the (__tcp_select_window(sk) >= tp->rcv_wnd) test
in __tcp_ack_snd_check(), causing ACK delays and possibly
slow flows.

Depending on tcp_rmem[2], MTU, skb->len/skb->truesize ratio,
we can see the problem happening on "netperf -t TCP_RR -- -r 2000,2000"
after about 60 round trips, when the active side no longer sends
immediate acks.

This bug predates git history.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Wei Wang <weiwan@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-04-16 21:47:39 -07:00
..
bpfilter
netfilter netfilter: nf_tables: merge ipv4 and ipv6 nat chain types 2019-03-01 14:36:59 +01:00
af_inet.c gso: validate gso_type on ipip style tunnels 2019-02-20 11:24:27 -08:00
ah4.c
arp.c
cipso_ipv4.c netlabel: fix out-of-bounds memory accesses 2019-02-27 21:45:24 -08:00
datagram.c
devinet.c net: ignore sysctl_devconf_inherit_init_net without SYSCTL 2019-03-04 13:14:34 -08:00
esp4.c
esp4_offload.c
fib_frontend.c ipv4: Return error for RTA_VIA attribute 2019-02-26 13:23:17 -08:00
fib_lookup.h
fib_notifier.c
fib_rules.c
fib_semantics.c
fib_trie.c
fou.c net: fou: do not use guehdr after iptunnel_pull_offloads in gue_udp_recv 2019-04-10 23:02:23 -07:00
gre_demux.c
gre_offload.c
icmp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-03-02 12:54:35 -08:00
igmp.c net: remove unneeded switch fall-through 2019-02-21 13:48:00 -08:00
inet_connection_sock.c
inet_diag.c inet_diag: fix reporting cgroup classid and fallback to priority 2019-02-12 13:35:57 -05:00
inet_fragment.c net: remove unused struct inet_frag_queue.fragments field 2019-02-26 08:27:05 -08:00
inet_hashtables.c
inet_timewait_sock.c
inetpeer.c
ip_forward.c
ip_fragment.c net: remove unused struct inet_frag_queue.fragments field 2019-02-26 08:27:05 -08:00
ip_gre.c net: ip_gre: fix possible use-after-free in erspan_rcv 2019-04-08 16:16:47 -07:00
ip_input.c vrf: check accept_source_route on the original netdevice 2019-04-01 10:44:58 -07:00
ip_options.c vrf: check accept_source_route on the original netdevice 2019-04-01 10:44:58 -07:00
ip_output.c
ip_sockglue.c
ip_tunnel.c iptunnel: NULL pointer deref for ip_md_tunnel_xmit 2019-03-06 10:43:06 -08:00
ip_tunnel_core.c ip_tunnel: Add dst_cache support in lwtunnel_state of ip tunnel 2019-02-24 22:13:49 -08:00
ip_vti.c
ipcomp.c
ipconfig.c
ipip.c
ipmr.c ipmr: ip6mr: Create new sockopt to clear mfc cache or vifs 2019-02-21 13:05:05 -08:00
ipmr_base.c
Kconfig
Makefile
metrics.c
netfilter.c
netlink.c ipv4: Add ICMPv6 support when parse route ipproto 2019-03-01 16:41:27 -08:00
ping.c
proc.c
protocol.c
raw.c
raw_diag.c
route.c ipv4: ensure rcu_read_lock() in ipv4_link_failure() 2019-04-14 13:43:17 -07:00
syncookies.c tcp: handle inet_csk_reqsk_queue_add() failures 2019-03-08 16:05:10 -08:00
sysctl_net_ipv4.c
tcp.c tcp: do not report TCP_CM_INQ of 0 for closed connections 2019-03-06 11:00:50 -08:00
tcp_bbr.c
tcp_bic.c
tcp_bpf.c
tcp_cdg.c
tcp_cong.c
tcp_cubic.c
tcp_dctcp.c dctcp: more accurate tracking of packets delivery 2019-04-11 21:31:03 -07:00
tcp_dctcp.h
tcp_diag.c
tcp_fastopen.c
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c
tcp_input.c tcp: tcp_grow_window() needs to respect tcp_space() 2019-04-16 21:47:39 -07:00
tcp_ipv4.c tcp: fix a potential NULL pointer dereference in tcp_sk_exit 2019-04-01 10:11:41 -07:00
tcp_lp.c
tcp_metrics.c
tcp_minisocks.c tcp: use tcp_md5_needed for timewait sockets 2019-02-26 13:16:03 -08:00
tcp_nv.c
tcp_offload.c
tcp_output.c tcp: remove tcp_queue argument from tso_fragment() 2019-02-26 13:16:03 -08:00
tcp_rate.c
tcp_recovery.c
tcp_scalable.c
tcp_timer.c
tcp_ulp.c
tcp_vegas.c
tcp_vegas.h
tcp_veno.c
tcp_westwood.c
tcp_yeah.c
tunnel4.c
udp.c udp: fix possible user after free in error handler 2019-02-22 16:05:11 -08:00
udp_diag.c
udp_impl.h
udp_offload.c
udp_tunnel.c
udplite.c
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c
xfrm4_output.c
xfrm4_policy.c
xfrm4_protocol.c
xfrm4_state.c
xfrm4_tunnel.c