All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi>
To: David Miller <davem@davemloft.net>
Cc: damian@tvk.rwth-aachen.de, denys@visp.net.lb,
	Netdev <netdev@vger.kernel.org>,
	Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Subject: Re: [PATCH] tcp: fix ICMP-RTO war
Date: Wed, 27 Jan 2010 14:41:56 +0200 (EET)	[thread overview]
Message-ID: <alpine.DEB.2.00.1001260957540.17103@melkinpaasi.cs.helsinki.fi> (raw)
In-Reply-To: <20100125.234557.00486980.davem@davemloft.net>

On Mon, 25 Jan 2010, David Miller wrote:

> From: Damian Lukowski <damian@tvk.rwth-aachen.de>
> Date: Mon, 25 Jan 2010 16:07:43 +0100
> 
> > @@ -530,7 +530,11 @@ static inline void tcp_bound_rto(const struct sock *sk)
> >  
> >  static inline u32 __tcp_set_rto(const struct tcp_sock *tp)
> >  {
> > -	return (tp->srtt >> 3) + tp->rttvar;
> > +	u32 rto = (tp->srtt >> 3) + tp->rttvar;
> > +	if (unlikely(rto < TCP_RTO_MIN))
> > +		return TCP_RTO_MIN;
> > +	else
> > +		return rto;
> >  }
> 
> The min RTO is now a runtime variable, TCP_RTO_MIN is merely the
> default, so we should use tcp_rto_min() for obtaining that value.
> 
> And if we make this change, we might want to delete the comment in
> tcp_set_rto() which claims:
> 
> 	/* NOTE: clamping at TCP_RTO_MIN is not required, current algo
> 	 * guarantees that rto is higher.
> 	 */
> 	tcp_bound_rto(sk);
> 
> And we have shown here at least one case where that is not true.
> :-)

I went through some history, it seems that this comment about the lower 
bound originates from Alexey [1]:

commit 893e1302654a9bcdc0e7d9ac95159657a8f5e0e8
Author: davem <davem>
Date:   Wed Dec 13 04:10:12 2000 +0000

    Fix numerous RTO bugs.
    Withdraw CWR when DSACKs are seen.
    Do not allow recvmsg on unbound socket, it is
    senseless.

    All from Alexey.


> I've looked at Denys's traces and your analysis, and I still
> can't figure out who the true culprit is that lets us get into
> such a state that RTO is evaluated so low...



-- 
 i.

[1] http://git.kernel.org/?p=linux/kernel/git/davem/netdev-vger-cvs.git;a=commit;h=893e1302654a9bcdc0e7d9ac95159657a8f5e0e8

  reply	other threads:[~2010-01-27 12:41 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
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 [this message]
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
2010-01-27 13:56 Denys Fedoryshchenko
2010-01-29 12:13 ` Damian Lukowski
2010-01-29 15:15   ` Denys Fedoryshchenko
2010-01-29 21:45     ` Damian Lukowski
2010-01-30 13:35       ` Denys Fedoryshchenko
2010-01-30 13:56         ` Damian Lukowski
2010-02-07 10:28           ` 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.1001260957540.17103@melkinpaasi.cs.helsinki.fi \
    --to=ilpo.jarvinen@helsinki.fi \
    --cc=damian@tvk.rwth-aachen.de \
    --cc=davem@davemloft.net \
    --cc=denys@visp.net.lb \
    --cc=kuznet@ms2.inr.ac.ru \
    --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.