linux/net/ipv4
Stephen Hemminger f4805eded7 [TCP]: fix congestion window update when using TSO deferal
TCP peformance with TSO over networks with delay is awful.
On a 100Mbit link with 150ms delay, we get 4Mbits/sec with TSO and
50Mbits/sec without TSO.

The problem is with TSO, we intentionally do not keep the maximum
number of packets in flight to fill the window, we hold out to until 
we can send a MSS chunk. But, we also don't update the congestion window 
unless we have filled, as per RFC2861.

This patch replaces the check for the congestion window being full
with something smarter that accounts for TSO.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2005-11-10 16:53:30 -08:00
..
ipvs [NET]: kfree cleanup 2005-11-08 09:41:34 -08:00
netfilter [NET]: Detect hardware rx checksum faults correctly 2005-11-10 13:01:24 -08:00
Kconfig [INET_DIAG]: Move the tcp_diag interface to the proper place 2005-08-29 15:57:54 -07:00
Makefile [INET_DIAG]: Move the tcp_diag interface to the proper place 2005-08-29 15:57:54 -07:00
af_inet.c [NET]: kfree cleanup 2005-11-08 09:41:34 -08:00
ah4.c [CRYPTO]: crypto_free_tfm() callers no longer need to check for NULL 2005-09-01 17:44:29 -07:00
arp.c [IPV4]: Replace __in_dev_get with __in_dev_get_rcu/rtnl 2005-10-03 14:35:55 -07:00
datagram.c [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
devinet.c [IPV4]: Fix setting broadcast for SIOCSIFNETMASK 2005-10-26 01:20:21 -02:00
esp4.c [IPSEC] Fix block size/MTU bugs in ESP 2005-10-10 21:11:34 -07:00
fib_frontend.c [NET]: kfree cleanup 2005-11-08 09:41:34 -08:00
fib_hash.c [NET]: use __read_mostly on kmem_cache_t , DEFINE_SNMP_STAT pointers 2005-08-29 16:11:18 -07:00
fib_lookup.h [IPV4]: Prepare FIB core for RCU. 2005-08-29 16:08:31 -07:00
fib_rules.c [NETLINK]: Correctly set NLM_F_MULTI without checking the pid 2005-06-18 22:54:12 -07:00
fib_semantics.c [IPV4]: Replace __in_dev_get with __in_dev_get_rcu/rtnl 2005-10-03 14:35:55 -07:00
fib_trie.c [IPV4]: Kill redundant rcu_dereference on fa_info 2005-10-26 00:25:03 -02:00
icmp.c [NET]: Detect hardware rx checksum faults correctly 2005-11-10 13:01:24 -08:00
igmp.c [NET]: Detect hardware rx checksum faults correctly 2005-11-10 13:01:24 -08:00
inet_connection_sock.c [TCP/DCCP]: Randomize port selection 2005-11-05 21:23:15 -02:00
inet_diag.c [NETLINK]: Make netlink_callback->done() optional 2005-11-10 02:26:40 +01:00
inet_hashtables.c [NET]: Introduce inet_connection_sock 2005-08-29 15:43:19 -07:00
inet_timewait_sock.c [TWSK]: Grab the module refcount for timewait sockets 2005-10-10 21:25:23 -07:00
inetpeer.c [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
ip_forward.c [IPV4]: Remove some dead code from ip_forward() 2005-08-29 16:03:06 -07:00
ip_fragment.c [IPV4]: Reassembly trim not clearing CHECKSUM_HW 2005-09-06 15:51:48 -07:00
ip_gre.c [NET]: Detect hardware rx checksum faults correctly 2005-11-10 13:01:24 -08:00
ip_input.c [NET]: use __read_mostly on kmem_cache_t , DEFINE_SNMP_STAT pointers 2005-08-29 16:11:18 -07:00
ip_options.c [NET]: kfree cleanup 2005-11-08 09:41:34 -08:00
ip_output.c [IPV4]: Fix ip_queue_xmit identity increment for TSO packets 2005-11-08 09:41:56 -08:00
ip_sockglue.c [NET]: kfree cleanup 2005-11-08 09:41:34 -08:00
ipcomp.c [CRYPTO]: crypto_free_tfm() callers no longer need to check for NULL 2005-09-01 17:44:29 -07:00
ipconfig.c [NET]: fix-up schedule_timeout() usage 2005-09-12 14:15:34 -07:00
ipip.c [NET]: fix oops after tunnel module unload 2005-07-30 17:46:44 -07:00
ipmr.c [IPV4]: Replace __in_dev_get with __in_dev_get_rcu/rtnl 2005-10-03 14:35:55 -07:00
multipath.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
multipath_drr.c [IPV4]: possible cleanups 2005-08-29 15:33:20 -07:00
multipath_random.c [IPV4]: Multipath modules need a license to prevent kernel tainting. 2005-06-13 14:29:06 -07:00
multipath_rr.c [IPV4]: Multipath modules need a license to prevent kernel tainting. 2005-06-13 14:29:06 -07:00
multipath_wrandom.c [NET]: kfree cleanup 2005-11-08 09:41:34 -08:00
netfilter.c [NETFILTER]: Move reroute-after-queue code up to the nf_queue layer. 2005-08-29 15:36:19 -07:00
proc.c [NET]: Wider use of for_each_*cpu() 2005-10-25 23:54:01 -02:00
protocol.c [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
raw.c [PATCH] raw_sendmsg DoS on 2.6 2005-09-19 18:45:42 -07:00
route.c [IPV4]: Replace __in_dev_get with __in_dev_get_rcu/rtnl 2005-10-03 14:35:55 -07:00
syncookies.c [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
sysctl_net_ipv4.c [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
tcp.c [TCP/DCCP]: Randomize port selection 2005-11-05 21:23:15 -02:00
tcp_bic.c [TCP]: fix congestion window update when using TSO deferal 2005-11-10 16:53:30 -08:00
tcp_cong.c [TCP]: fix congestion window update when using TSO deferal 2005-11-10 16:53:30 -08:00
tcp_diag.c [INET_DIAG]: Move the tcp_diag interface to the proper place 2005-08-29 15:57:54 -07:00
tcp_highspeed.c [TCP]: fix congestion window update when using TSO deferal 2005-11-10 16:53:30 -08:00
tcp_htcp.c [TCP]: fix congestion window update when using TSO deferal 2005-11-10 16:53:30 -08:00
tcp_hybla.c [TCP]: fix congestion window update when using TSO deferal 2005-11-10 16:53:30 -08:00
tcp_input.c [TCP]: Clear stale pred_flags when snd_wnd changes 2005-10-27 15:11:04 -02:00
tcp_ipv4.c [NET]: Detect hardware rx checksum faults correctly 2005-11-10 13:01:24 -08:00
tcp_minisocks.c [TCP]: Set default congestion control correctly for incoming connections. 2005-09-21 00:19:46 -07:00
tcp_output.c [TCP]: fix congestion window update when using TSO deferal 2005-11-10 16:53:30 -08:00
tcp_scalable.c [TCP]: fix congestion window update when using TSO deferal 2005-11-10 16:53:30 -08:00
tcp_timer.c [ICSK]: Move TCP congestion avoidance members to icsk 2005-08-29 15:56:18 -07:00
tcp_vegas.c [INET_DIAG]: Rename tcp_diag.[ch] to inet_diag.[ch] 2005-08-29 15:57:48 -07:00
tcp_westwood.c [INET_DIAG]: Rename tcp_diag.[ch] to inet_diag.[ch] 2005-08-29 15:57:48 -07:00
udp.c [NET]: Detect hardware rx checksum faults correctly 2005-11-10 13:01:24 -08:00
xfrm4_input.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xfrm4_output.c [IPSEC]: Add XFRM_STATE_NOPMTUDISC flag 2005-06-20 13:21:43 -07:00
xfrm4_policy.c [IPSEC]: Store idev entries 2005-05-03 16:27:10 -07:00
xfrm4_state.c [IPV4]: possible cleanups 2005-08-29 15:33:20 -07:00
xfrm4_tunnel.c [NET]: Make ipip/ip6_tunnel independant of XFRM 2005-07-19 14:03:34 -07:00