All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi>
To: Denys Fedoryshchenko <denys@visp.net.lb>
Cc: Damian Lukowski <damian@tvk.rwth-aachen.de>,
	Netdev <netdev@vger.kernel.org>
Subject: Re: Crazy TCP bug (keepalive flood?) in 2.6.32?
Date: Tue, 19 Jan 2010 13:17:51 +0200 (EET)	[thread overview]
Message-ID: <alpine.DEB.2.00.1001191308490.14108@wel-95.cs.helsinki.fi> (raw)
In-Reply-To: <201001191309.03927.denys@visp.net.lb>

On Tue, 19 Jan 2010, Denys Fedoryshchenko wrote:

> On Tuesday 19 January 2010 11:10:12 you wrote:
> > Hi,
> > thank you for testing. So srtt and rttvar is zero in any of those cases.
> > Ilpo, it is a bug in tcp_rtt_estimator then, I suppose?
> > 
> > There is also a code comment in tcp_input.c, saying:
> > > * NOTE: clamping at TCP_RTO_MIN is not required, current algo
> > > * guarantees that rto is higher.
> > 
> > So we either fix tcp_rtt_estimator or simply clamp at TCP_RTO_MIN?
> > 
> > Damian
> > 
> > > On Monday 11 January 2010 15:02:34 you wrote:
> > >> On Sat, 26 Dec 2009, Denys Fedoryshchenko wrote:
> > >>> Few more dumps. I notice:
> > >>> 1)Ack always equal 1
> > >>> 2)It is usually first segment of data sent (?)
> > >>>
> > >>> Maybe some value not initialised properly?
> > >>
> > >> Can you see if the RTO lower bound is violated (I added some printing of
> > >> vars there too already now if it turns out to be something):
> > >>
> > >> diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
> > >> index 65b8ebf..d84469f 100644
> > >> --- a/net/ipv4/tcp_ipv4.c
> > >> +++ b/net/ipv4/tcp_ipv4.c
> As i see in code it is rounding RTO to minimum value.
> It fixes my problem seems.
> 
> Btw just a bit about my environment - wireless networks (sometimes lossy!) 
> with low speed (128-512Kbps) customers working over pppoe. Maybe it will give 
> a tip why rtt value is too low.

What I find most strange in it is the fact that when it triggers for the 
first time, the srtt and mdev are zero, not some value in between 0 and 
200ms. Therefore I suspect that this case might be something that we've 
overlooked where srtt/mdev are not valid at all.

Maybe the patch below helps...

-- 
 i.

--
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 65b8ebf..c8166d7 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -401,6 +417,9 @@ void tcp_v4_err(struct sk_buff *icmp_skb, u32 info)
 		 * (see draft-zimmermann-tcp-lcd) */
 		if (code != ICMP_NET_UNREACH && code != ICMP_HOST_UNREACH)
 			break;
+		/* A bit too strict, just want to be on the safe side for now */
+		if (sk->sk_state != TCP_ESTABLISHED)
+			break;
 		if (seq != tp->snd_una  || !icsk->icsk_retransmits ||
 		    !icsk->icsk_backoff)
 			break;

  reply	other threads:[~2010-01-19 11:17 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-26 15:03 Crazy TCP bug (keepalive flood?) in 2.6.32? Denys Fedoryshchenko
2009-12-26 19:24 ` Ilpo Järvinen
2010-01-11 13:02 ` Ilpo Järvinen
2010-01-16 14:12   ` Denys Fedoryshchenko
2010-01-19  9:10     ` Damian Lukowski
2010-01-19 11:09       ` Denys Fedoryshchenko
2010-01-19 11:17         ` Ilpo Järvinen [this message]
2010-01-23 21:37           ` Denys Fedoryshchenko
2010-01-23 22:34             ` [PATCH] tcp: fix ICMP-RTO war Ilpo Järvinen
2010-01-23 22:45               ` Denys Fedoryshchenko
2010-01-25 15:07                 ` Damian Lukowski
2010-01-26  7:45                   ` David Miller
2010-01-27 12:41                     ` Ilpo Järvinen
2010-01-27 14:14                       ` Alexey Kuznetsov
2010-01-23 23:28               ` Denys Fedoryshchenko
2010-01-25 12:12               ` Damian Lukowski
2010-01-27 12:36                 ` Ilpo Järvinen
  -- strict thread matches above, loose matches on Subject: below --
2009-12-09 18:51 Crazy TCP bug (keepalive flood?) in 2.6.32? Denys Fedoryshchenko
2009-12-10  8:24 ` Ilpo Järvinen
2009-12-10  8:28   ` Ilpo Järvinen
2009-12-10  8:50     ` Ilpo Järvinen
2009-12-10 10:05       ` Damian Lukowski
2009-12-10 10:24         ` Ilpo Järvinen
2009-12-26 14:54           ` Denys Fedoryshchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.00.1001191308490.14108@wel-95.cs.helsinki.fi \
    --to=ilpo.jarvinen@helsinki.fi \
    --cc=damian@tvk.rwth-aachen.de \
    --cc=denys@visp.net.lb \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.