aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorJohn Heffner <jheffner@psc.edu>2006-10-18 20:36:48 -0700
committerDavid S. Miller <davem@davemloft.net>2006-10-18 20:36:48 -0700
commitae8064ac32d07f609114d73928cdef803be87134 (patch)
treea783594abc5ca2f795992664684ab46581625fac /include/linux
parentb52f070c9c3c09ed3b7f699280193aae7e25d816 (diff)
downloadkernel_samsung_espresso10-ae8064ac32d07f609114d73928cdef803be87134.zip
kernel_samsung_espresso10-ae8064ac32d07f609114d73928cdef803be87134.tar.gz
kernel_samsung_espresso10-ae8064ac32d07f609114d73928cdef803be87134.tar.bz2
[TCP]: Bound TSO defer time
This patch limits the amount of time you will defer sending a TSO segment to less than two clock ticks, or the time between two acks, whichever is longer. On slow links, deferring causes significant bursts. See attached plots, which show RTT through a 1 Mbps link with a 100 ms RTT and ~100 ms queue for (a) non-TSO, (b) currnet TSO, and (c) patched TSO. This burstiness causes significant jitter, tends to overflow queues early (bad for short queues), and makes delay-based congestion control more difficult. Deferring by a couple clock ticks I believe will have a relatively small impact on performance. Signed-off-by: John Heffner <jheffner@psc.edu> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/tcp.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index 0e058a2..2d36f6d 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -342,6 +342,8 @@ struct tcp_sock {
unsigned long last_synq_overflow;
+ __u32 tso_deferred;
+
/* Receiver side RTT estimation */
struct {
__u32 rtt;