Eric Dumazet
b23477d818
tcp: refine rule to allow EPOLLOUT generation under mem pressure
...
commit 216808c6ba6d00169fd2aa928ec3c0e63bef254f upstream.
At the time commit ce5ec44099 ("tcp: ensure epoll edge trigger
wakeup when write queue is empty") was added to the kernel,
we still had a single write queue, combining rtx and write queues.
Once we moved the rtx queue into a separate rb-tree, testing
if sk_write_queue is empty has been suboptimal.
Indeed, if we have packets in the rtx queue, we probably want
to delay the EPOLLOUT generation at the time incoming packets
will free them, making room, but more importantly avoiding
flooding application with EPOLLOUT events.
Solution is to use tcp_rtx_and_write_queues_empty() helper.
Fixes: 75c119afe1 ("tcp: implement rb-tree based retransmit queue")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Jason Baron <jbaron@akamai.com>
Cc: Neal Cardwell <ncardwell@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-01-23 08:21:36 +01:00
..
bpfilter
bpfilter: remove trailing newline
2018-07-24 14:10:42 -07:00
netfilter
netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct
2020-01-23 08:21:33 +01:00
af_inet.c
gso_segment: Reset skb->mac_len after modifying network header
2018-09-13 12:09:32 -07:00
ah4.c
net: use -ENOSPC for transient busy indication
2017-11-03 22:11:17 +08:00
arp.c
proc: introduce proc_create_net{,_data}
2018-05-16 07:24:30 +02:00
cipso_ipv4.c
net: avoid use IPCB in cipso_v4_error
2019-03-10 07:17:19 +01:00
datagram.c
inet: stop leaking jiffies on the wire
2019-11-10 11:27:37 +01:00
devinet.c
inet: protect against too small mtu values.
2019-12-21 10:57:08 +01:00
esp4.c
esp4: add length check for UDP encapsulation
2019-05-25 18:23:41 +02:00
esp4_offload.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next
2018-07-27 09:33:37 -07:00
fib_frontend.c
ipv4: fix route update on metric change.
2019-11-10 11:27:50 +01:00
fib_lookup.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
fib_notifier.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
fib_rules.c
net: fib_rules: add extack support
2018-04-23 10:21:24 -04:00
fib_semantics.c
ipv4: Fix table id reference in fib_sync_down_addr
2019-11-12 19:20:27 +01:00
fib_trie.c
net: ipv4: Fix memory leak in network namespace dismantle
2019-01-31 08:14:32 +01:00
fou.c
net: fou: do not use guehdr after iptunnel_pull_offloads in gue_udp_recv
2019-04-27 09:36:31 +02:00
gre_demux.c
gre: refetch erspan header from skb->data after pskb_may_pull()
2019-12-17 20:35:51 +01:00
gre_offload.c
Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net
2018-07-03 10:29:26 +09:00
icmp.c
net: icmp: fix data-race in cmp_global_allow()
2020-01-04 19:13:30 +01:00
igmp.c
ipv4/igmp: fix v1/v2 switchback timeout based on rfc3376, 8.12
2019-12-01 09:17:05 +01:00
inet_connection_sock.c
net: add bool confirm_neigh parameter for dst_ops.update_pmtu
2020-01-04 19:13:37 +01:00
inet_diag.c
tcp/dccp: fix possible race __inet_lookup_established()
2020-01-04 19:13:41 +01:00
inet_fragment.c
net: IP defrag: encapsulate rbtree defrag code into callable functions
2019-04-27 09:36:33 +02:00
inet_hashtables.c
tcp/dccp: fix possible race __inet_lookup_established()
2020-01-04 19:13:41 +01:00
inet_timewait_sock.c
soreuseport: initialise timewait reuseport field
2018-04-07 22:32:32 -04:00
inetpeer.c
inetpeer: fix data-race in inet_putpeer / inet_putpeer
2020-01-04 19:13:29 +01:00
ip_forward.c
net: clear skb->tstamp in forwarding paths
2019-01-09 17:38:31 +01:00
ip_fragment.c
net: IP defrag: encapsulate rbtree defrag code into callable functions
2019-04-27 09:36:33 +02:00
ip_gre.c
net: ip_gre: do not report erspan_ver for gre or gretap
2019-12-05 09:21:10 +01:00
ip_input.c
vrf: check accept_source_route on the original netdevice
2019-04-17 08:38:42 +02:00
ip_options.c
vrf: check accept_source_route on the original netdevice
2019-04-17 08:38:42 +02:00
ip_output.c
inet: protect against too small mtu values.
2019-12-21 10:57:08 +01:00
ip_sockglue.c
net: bpfilter: fix iptables failure if bpfilter_umh is disabled
2019-12-01 09:17:18 +01:00
ip_tunnel.c
tunnel: do not confirm neighbor when do pmtu update
2020-01-04 19:13:38 +01:00
ip_tunnel_core.c
ip_tunnel: allow not to count pkts on tstats by setting skb's dev to NULL
2019-08-04 09:30:57 +02:00
ip_vti.c
vti: do not confirm neighbor when do pmtu update
2020-01-04 19:13:39 +01:00
ipcomp.c
ipconfig.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-06-06 18:39:49 -07:00
ipip.c
ipip: validate header length in ipip_tunnel_xmit
2019-08-09 17:52:30 +02:00
ipmr.c
ipmr: Fix skb headroom in ipmr_get_route().
2019-11-20 18:45:11 +01:00
ipmr_base.c
net: ipmr: fix unresolved entry dumps
2018-10-17 22:35:42 -07:00
Kconfig
net: remove blank lines at end of file
2018-07-24 14:10:43 -07:00
Makefile
net: remove blank lines at end of file
2018-07-24 14:10:43 -07:00
metrics.c
net: metrics: add proper netlink validation
2018-06-05 12:29:43 -04:00
netfilter.c
netfilter: utils: move nf_ip_checksum* from ipv4 to utils
2018-07-16 17:51:48 +02:00
netlink.c
ipv4: Add ICMPv6 support when parse route ipproto
2019-03-10 07:17:17 +01:00
ping.c
net: add helpers checking if socket can be bound to nonlocal address
2018-08-01 09:50:04 -07:00
proc.c
tcp: tcp_fragment() should apply sane memory limits
2019-06-17 19:51:56 +02:00
protocol.c
net: Add sysctl to toggle early demux for tcp and udp
2017-03-24 13:17:07 -07:00
raw.c
ipv4: Use return value of inet_iif() for __raw_v4_lookup in the while loop
2019-07-03 13:14:46 +02:00
raw_diag.c
net: don't warn in inet diag when IPV6 is disabled
2019-10-01 08:26:11 +02:00
route.c
net: add bool confirm_neigh parameter for dst_ops.update_pmtu
2020-01-04 19:13:37 +01:00
syncookies.c
tcp: handle inet_csk_reqsk_queue_add() failures
2019-03-19 13:12:39 +01:00
sysctl_net_ipv4.c
tcp: add tcp_min_snd_mss sysctl
2019-06-17 19:51:56 +02:00
tcp.c
tcp: refine rule to allow EPOLLOUT generation under mem pressure
2020-01-23 08:21:36 +01:00
tcp_bbr.c
tcp_bbr: apply PROBE_RTT cwnd cap even if acked==0
2018-08-22 21:45:32 -07:00
tcp_bic.c
tcp: consolidate congestion control undo functions
2017-08-06 21:25:10 -07:00
tcp_cdg.c
tcp: cdg: make struct tcp_cdg static
2017-10-16 21:24:25 +01:00
tcp_cong.c
tcp: fix tcp_set_congestion_control() use from bpf hook
2019-07-28 08:29:26 +02:00
tcp_cubic.c
tcp: consolidate congestion control undo functions
2017-08-06 21:25:10 -07:00
tcp_dctcp.c
tcp: Ensure DCTCP reacts to losses
2019-04-17 08:38:41 +02:00
tcp_diag.c
tcp: annotate tp->rcv_nxt lockless reads
2020-01-09 10:19:08 +01:00
tcp_fastopen.c
tcp: pause Fast Open globally after third consecutive timeout
2017-12-13 15:51:12 -05:00
tcp_highspeed.c
tcp: consolidate congestion control undo functions
2017-08-06 21:25:10 -07:00
tcp_htcp.c
tcp: fix cwnd undo in Reno and HTCP congestion controls
2017-08-06 21:25:10 -07:00
tcp_hybla.c
tcp_illinois.c
net/tcp/illinois: replace broken algorithm reference link
2018-02-28 12:03:47 -05:00
tcp_input.c
tcp: fix marked lost packets not being retransmitted
2020-01-23 08:21:35 +01:00
tcp_ipv4.c
tcp: annotate tp->rcv_nxt lockless reads
2020-01-09 10:19:08 +01:00
tcp_lp.c
tcp: switch TCP TS option (RFC 7323) to 1ms clock
2017-05-17 16:06:01 -04:00
tcp_metrics.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
tcp_minisocks.c
tcp: annotate tp->rcv_nxt lockless reads
2020-01-09 10:19:08 +01:00
tcp_nv.c
tcp_nv: fix potential integer overflow in tcpnv_acked
2018-01-31 10:26:30 -05:00
tcp_offload.c
tcp: Don't coalesce decrypted and encrypted SKBs
2018-07-16 00:12:09 -07:00
tcp_output.c
tcp: do not send empty skb from tcp_write_xmit()
2020-01-04 19:13:42 +01:00
tcp_rate.c
tcp: expose both send and receive intervals for rate sample
2018-07-11 23:01:56 -07:00
tcp_recovery.c
tcp: add stat of data packet reordering events
2018-08-01 09:56:10 -07:00
tcp_scalable.c
tcp: consolidate congestion control undo functions
2017-08-06 21:25:10 -07:00
tcp_timer.c
tcp: fix SNMP TCP timeout under-estimation
2019-12-13 08:52:20 +01:00
tcp_ulp.c
tcp, ulp: fix leftover icsk_ulp_ops preventing sock from reattach
2018-08-16 14:58:08 -07:00
tcp_vegas.c
tcp: fix under-evaluated ssthresh in TCP Vegas
2017-09-29 06:07:00 +01:00
tcp_vegas.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
tcp_veno.c
tcp: consolidate congestion control undo functions
2017-08-06 21:25:10 -07:00
tcp_westwood.c
tcp: Revert "tcp: remove CA_ACK_SLOWPATH"
2017-08-30 11:20:08 -07:00
tcp_yeah.c
tcp: consolidate congestion control undo functions
2017-08-06 21:25:10 -07:00
tunnel4.c
inet: whitespace cleanup
2018-02-28 11:43:28 -05:00
udp.c
udp: fix integer overflow while computing available space in sk_rcvbuf
2020-01-04 19:13:36 +01:00
udp_diag.c
udp: fix rx queue len reported by diag and proc interface
2018-06-08 19:55:15 -04:00
udp_impl.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
udp_offload.c
Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net
2018-07-03 10:29:26 +09:00
udp_tunnel.c
net: add infrastructure to un-offload UDP tunnel port
2017-07-24 13:52:59 -07:00
udplite.c
proc: introduce proc_create_net{,_data}
2018-05-16 07:24:30 +02:00
xfrm4_input.c
xfrm: reset transport header back to network header after all input transforms ahave been applied
2018-09-04 10:26:30 +02:00
xfrm4_mode_beet.c
networking: make skb_pull & friends return void pointers
2017-06-16 11:48:39 -04:00
xfrm4_mode_transport.c
xfrm: reset transport header back to network header after all input transforms ahave been applied
2018-09-04 10:26:30 +02:00
xfrm4_mode_tunnel.c
xfrm: Verify MAC header exists before overwriting eth_hdr(skb)->h_proto
2018-03-07 10:54:29 +01:00
xfrm4_output.c
net: xfrm: use skb_gso_validate_network_len() to check gso sizes
2018-03-04 17:49:17 -05:00
xfrm4_policy.c
net: add bool confirm_neigh parameter for dst_ops.update_pmtu
2020-01-04 19:13:37 +01:00
xfrm4_protocol.c
xfrm: input: constify xfrm_input_afinfo
2017-02-09 10:22:17 +01:00
xfrm4_state.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xfrm4_tunnel.c