add patch to revert condition that can set RTT=0 rhel6-mlab
authorsoltesz@opentechinstitute.org <soltesz@opentechinstitute.org>
Wed, 5 Jun 2013 20:04:57 +0000 (16:04 -0400)
committersoltesz@opentechinstitute.org <soltesz@opentechinstitute.org>
Wed, 5 Jun 2013 20:04:57 +0000 (16:04 -0400)
The main-line kernel included this change to attempt to address RTO
calculations.  However, M-Lab has discovered that for Windows clients this
incorrectly calculates the web100.MinRTT value.  So, this patch reverts the
change in order to preserve the MinRTT calculation.

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/net/ipv4/tcp_input.c?id=598856407d4e20ebb4de01a91a93d89325924d43

kernel-2.6.spec
linux-2.6-720-undo-rttzero.patch [new file with mode: 0644]

index cabee1f..04dc109 100644 (file)
@@ -11,7 +11,7 @@ URL: %{SCMURL}
 %define name linux-2.6
 %define module_version_varname sublevel
 # 131 borrowed from centos6.1, tg3 from 220 centos 6.2
-%define taglevel 131.vs230.web10027.xidmask
+%define taglevel 131.vs230.web10027.xidmask.2
 
 %define sublevel 33
 
@@ -687,6 +687,7 @@ Patch20: linux-2.6-680-htb-hysteresis-tso.patch
 Patch21: linux-2.6-690-web100.patch
 Patch22: linux-2.6-700-bcm5720.patch
 Patch23: linux-2.6-710-xidmask.patch
+Patch24: linux-2.6-720-undo-rttzero.patch
 
 Patch10000: linux-2.6-10000-gcc-4.5.patch
 Patch10001: linux-2.6-10001-gcc-4.6-warnoff.patch
@@ -1009,6 +1010,7 @@ ApplyPatch linux-2.6-680-htb-hysteresis-tso.patch
 ApplyPatch linux-2.6-690-web100.patch
 ApplyPatch linux-2.6-700-bcm5720.patch
 ApplyPatch linux-2.6-710-xidmask.patch
+ApplyPatch linux-2.6-720-undo-rttzero.patch
 ApplyPatch linux-2.6-10000-gcc-4.5.patch
 ApplyPatch linux-2.6-10001-gcc-4.6-warnoff.patch
 ApplyPatch linux-2.6-10002-gcc-4.6-sense_buffer.patch
diff --git a/linux-2.6-720-undo-rttzero.patch b/linux-2.6-720-undo-rttzero.patch
new file mode 100644 (file)
index 0000000..526f3f5
--- /dev/null
@@ -0,0 +1,17 @@
+diff -Ndur linux-2.6.32-orig/net/ipv4/tcp_input.c linux-2.6.32-undorttzero/net/ipv4/tcp_input.c
+--- linux-2.6.32-orig/net/ipv4/tcp_input.c     2013-06-05 15:47:10.551009408 -0400
++++ linux-2.6.32-undorttzero/net/ipv4/tcp_input.c      2013-06-05 15:49:32.458996663 -0400
+@@ -5783,9 +5783,11 @@
+                               /* tcp_ack considers this ACK as duplicate
+                                * and does not calculate rtt.
+-                               * Force it here.
++                               * Fix it at least with timestamps.
+                                */
+-                              tcp_ack_update_rtt(sk, 0, 0);
++                              if (tp->rx_opt.saw_tstamp && 
++                                      tp->rx_opt.rcv_tsecr && !tp->srtt)
++                                              tcp_ack_saw_tstamp(sk, 0);
+                               if (tp->rx_opt.tstamp_ok)
+                                       tp->advmss -= TCPOLEN_TSTAMP_ALIGNED;