[kernel] r15277 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/series

Maximilian Attems maks at alioth.debian.org
Thu Feb 25 12:11:25 UTC 2010


Author: maks
Date: Thu Feb 25 12:11:13 2010
New Revision: 15277

Log:
add tcp bugfix causing high CPU load

[ bug introduced in 2.6.32-rc1 ]

Added:
   dists/sid/linux-2.6/debian/patches/bugfix/all/tcp-fix-ICMP-RTO-war.patch
   dists/sid/linux-2.6/debian/patches/series/10
Modified:
   dists/sid/linux-2.6/debian/changelog

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Thu Feb 25 11:14:23 2010	(r15276)
+++ dists/sid/linux-2.6/debian/changelog	Thu Feb 25 12:11:13 2010	(r15277)
@@ -1,3 +1,9 @@
+linux-2.6 (2.6.32-10) UNRELEASED; urgency=low
+
+  * tcp: fix ICMP-RTO war.
+
+ -- maximilian attems <maks at debian.org>  Thu, 25 Feb 2010 13:07:47 +0100
+
 linux-2.6 (2.6.32-9) unstable; urgency=high
 
   [ Ben Hutchings ]

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/tcp-fix-ICMP-RTO-war.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/tcp-fix-ICMP-RTO-war.patch	Thu Feb 25 12:11:13 2010	(r15277)
@@ -0,0 +1,51 @@
+From 598856407d4e20ebb4de01a91a93d89325924d43 Mon Sep 17 00:00:00 2001
+From: Damian Lukowski <damian at tvk.rwth-aachen.de>
+Date: Wed, 10 Feb 2010 18:04:08 -0800
+Subject: [PATCH] tcp: fix ICMP-RTO war
+
+Make sure, that TCP has a nonzero RTT estimation after three-way
+handshake. Currently, a listening TCP has a value of 0 for srtt,
+rttvar and rto right after the three-way handshake is completed
+with TCP timestamps disabled.
+This will lead to corrupt RTO recalculation and retransmission
+flood when RTO is recalculated on backoff reversion as introduced
+in "Revert RTO on ICMP destination unreachable"
+(f1ecd5d9e7366609d640ff4040304ea197fbc618).
+This behaviour can be provoked by connecting to a server which
+"responds first" (like SMTP) and rejecting every packet after
+the handshake with dest-unreachable, which will lead to softirq
+load on the server (up to 30% per socket in some tests).
+
+Thanks to Ilpo Jarvinen for providing debug patches and to
+Denys Fedoryshchenko for reporting and testing.
+
+Changes since v3: Removed bad characters in patchfile.
+
+Reported-by: Denys Fedoryshchenko <denys at visp.net.lb>
+Signed-off-by: Damian Lukowski <damian at tvk.rwth-aachen.de>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ net/ipv4/tcp_input.c |    6 ++----
+ 1 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
+index 28e0296..3fddc69 100644
+--- a/net/ipv4/tcp_input.c
++++ b/net/ipv4/tcp_input.c
+@@ -5783,11 +5783,9 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
+ 
+ 				/* tcp_ack considers this ACK as duplicate
+ 				 * and does not calculate rtt.
+-				 * Fix it at least with timestamps.
++				 * Force it here.
+ 				 */
+-				if (tp->rx_opt.saw_tstamp &&
+-				    tp->rx_opt.rcv_tsecr && !tp->srtt)
+-					tcp_ack_saw_tstamp(sk, 0);
++				tcp_ack_update_rtt(sk, 0, 0);
+ 
+ 				if (tp->rx_opt.tstamp_ok)
+ 					tp->advmss -= TCPOLEN_TSTAMP_ALIGNED;
+-- 
+1.6.6.1
+

Added: dists/sid/linux-2.6/debian/patches/series/10
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/series/10	Thu Feb 25 12:11:13 2010	(r15277)
@@ -0,0 +1 @@
++ bugfix/all/tcp-fix-ICMP-RTO-war.patch



More information about the Kernel-svn-changes mailing list