android_kernel_xiaomi_sm8350/net/ipv4
Steven J. Magnani 73852e8151 NET_DMA: free skbs periodically
Under NET_DMA, data transfer can grind to a halt when userland issues a
large read on a socket with a high RCVLOWAT (i.e., 512 KB for both).
This appears to be because the NET_DMA design queues up lots of memcpy
operations, but doesn't issue or wait for them (and thus free the
associated skbs) until it is time for tcp_recvmesg() to return.
The socket hangs when its TCP window goes to zero before enough data is
available to satisfy the read.

Periodically issue asynchronous memcpy operations, and free skbs for ones
that have completed, to prevent sockets from going into zero-window mode.

Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-03-20 14:29:02 -07:00
..
netfilter netfilter: xtables: restore indentation 2010-02-26 17:53:31 +01:00
af_inet.c percpu: add __percpu sparse annotations to net 2010-02-16 23:05:38 -08:00
ah4.c xfrm: SA lookups signature with mark 2010-02-22 16:20:22 -08:00
arp.c net neigh: Decouple per interface neighbour table controls from binary sysctls 2010-02-16 15:55:18 -08:00
cipso_ipv4.c
datagram.c
devinet.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-02-25 23:22:42 -08:00
esp4.c xfrm: SA lookups signature with mark 2010-02-22 16:20:22 -08:00
fib_frontend.c net: spread __net_init, __net_exit 2010-01-17 19:16:02 -08:00
fib_hash.c
fib_lookup.h
fib_rules.c
fib_semantics.c ipv4: obsolete config in kernel source (IP_ROUTE_PERVASIVE) 2010-02-04 14:58:46 -08:00
fib_trie.c ipv4: fib table algorithm performance improvement 2009-10-05 00:21:56 -07:00
icmp.c icmp: move icmp_err_convert[] to .rodata 2010-01-23 01:21:28 -08:00
igmp.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-02-14 22:30:54 -08:00
inet_connection_sock.c tcp: account SYN-ACK timeouts & retransmissions 2010-01-17 19:09:39 -08:00
inet_diag.c netlink: With opcode INET_DIAG_BC_S_LE dport was compared in inet_diag_bc_run() 2010-01-19 14:12:20 -08:00
inet_fragment.c
inet_hashtables.c
inet_lro.c
inet_timewait_sock.c
inetpeer.c
ip_forward.c
ip_fragment.c ipv4: ip_fragment: fix unbalanced rcu_read_unlock() 2010-02-02 11:46:50 -08:00
ip_gre.c gre: fix hard header destination address checking 2010-03-04 00:53:52 -08:00
ip_input.c
ip_options.c
ip_output.c ip: fix mc_loop checks for tunnels with multicast outer addresses 2010-01-06 20:37:01 -08:00
ip_sockglue.c tcp: Generalized TTL Security Mechanism 2010-01-11 16:28:01 -08:00
ipcomp.c xfrm: SA lookups signature with mark 2010-02-22 16:20:22 -08:00
ipconfig.c ipconfig: Handle devices which take some time to come up. 2010-03-12 00:00:17 -08:00
ipip.c tunnels: fix netns vs proto registration ordering 2010-02-16 14:55:25 -08:00
ipmr.c net: ipmr/ip6mr: fix potential out-of-bounds vif_table access 2010-03-19 22:47:22 -07:00
Kconfig
Makefile
netfilter.c
proc.c tcp: Add SNMP counters for backlog and min_ttl drops 2010-03-08 10:45:27 -08:00
protocol.c
raw.c
route.c ipv4: check rt_genid in dst_check 2010-03-19 21:00:41 -07:00
syncookies.c net: Add rtnetlink init_rcvwnd to set the TCP initial receive window 2009-12-23 14:13:30 -08:00
sysctl_net_ipv4.c net: TCP thin dupack 2010-02-18 15:43:09 -08:00
tcp_bic.c
tcp_cong.c
tcp_cubic.c
tcp_diag.c
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c
tcp_input.c tcp: Fix tcp_mark_head_lost() with packets == 0 2010-03-19 22:47:22 -07:00
tcp_ipv4.c TCP: check min TTL on received ICMP packets 2010-03-19 21:00:42 -07:00
tcp_lp.c
tcp_minisocks.c net: backlog functions rename 2010-03-05 13:34:03 -08:00
tcp_output.c tcp: Fix tcp_make_synack() 2010-03-08 11:32:01 -08:00
tcp_probe.c tcp_probe: avoid modulus operation and wrap fix 2010-01-25 15:47:50 -08:00
tcp_scalable.c
tcp_timer.c Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
tcp_vegas.c
tcp_vegas.h
tcp_veno.c
tcp_westwood.c
tcp_yeah.c
tcp.c NET_DMA: free skbs periodically 2010-03-20 14:29:02 -07:00
tunnel4.c
udp_impl.h
udp.c net: backlog functions rename 2010-03-05 13:34:03 -08:00
udplite.c net: spread __net_init, __net_exit 2010-01-17 19:16:02 -08:00
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c
xfrm4_output.c
xfrm4_policy.c ipsec: Fix bogus bundle flowi 2010-03-03 01:04:37 -08:00
xfrm4_state.c
xfrm4_tunnel.c