From: "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi>
To: Stephen Hemminger <shemminger@linux-foundation.org>
Cc: Lior Dotan <liodot@gmail.com>, Netdev <netdev@vger.kernel.org>
Subject: Re: [PATCH-2.4] Fix divide by 0 in vegas_cong_avoid()
Date: Wed, 30 May 2007 21:56:02 +0300 (EEST) [thread overview]
Message-ID: <Pine.LNX.4.64.0705302100500.26408@kivilampi-30.cs.helsinki.fi> (raw)
In-Reply-To: <20070530093447.35300699@freepuppy>
[-- Attachment #1: Type: TEXT/PLAIN, Size: 2442 bytes --]
On Wed, 30 May 2007, Stephen Hemminger wrote:
> On Wed, 30 May 2007 10:49:54 +0300 (EEST)
> "Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi> wrote:
>
> > I think the code did a right thing before your api merge, since it called
> > rtt callback only if FLAG_RETRANS_DATA_ACKED was not set (and pkts_acked
> > always), i.e., when TCP cannot know if it was the rexmission that
> > triggered the cumulative ACK or any original transmission, no new RTT
> > measurement should be made. Consider also the fact that, there might be a
> > non rexmitted skb after rexmitted one, which Lior's patch doesn't do
> > right way at all since the FLAG_DATA_ACKED would again get set (no
> > div-by-zero would have occured then but an unreliable timestamp would
> > have been givento vegas in 2.4).
> >
> > The number of packets that got cumulatively acked is never a right metric
> > to measure whether the cumulative ACK originated from rexmitted skbs or
> > not. ...Perhaps the FLAG_RETRANS_DATA_ACKED flag needs to be passed
> > somehow to cc modules?
>
> What about the mixed case where some retransmitted data and new
> data was covered by one ack.
Without timestamps TCP cannot do anything better than consider a
cumulative ACK that includes any ever retransmitted segment as
inaccurate timestamp. Like in tcp_ack_no_tstamp:
if (flag & FLAG_RETRANS_DATA_ACKED)
return;
...I think this same applies to cc modules as well. With timestamps
things are another beast.
> I would rather keep the merge, but think about the cases more
> carefully.
IMHO there's no problem with keeping the merge, you just need to add
another parameter to pkts_acked (or by some other means indicate it) to
distinguish RTT measurement with accurate timestamp from inaccurate ones.
Maybe the first step (to 2.6.22 to avoid new bugs etc.) should be just to
give the flag (for some funny reason, it's called "acked" in
tcp_clean_rtx_queue) or use a single arg with 0/1 value fo depending on
FLAG_RETRANS_DATA_ACKED and check that in the merged pkts_acked in the
cases that were using the old rtt callback. It would allow retaining the
previous (correct) functionality as it was before the API merge. That
would prevent potential regressions in cc modules due to this merge.
...Then perhaps come up with a solution that takes advantage of timestamps
more aggressively to 2.6.23 like the core rtt estimator already does.
--
i.
next prev parent reply other threads:[~2007-05-30 18:56 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-29 9:18 [PATCH-2.4] Fix divide by 0 in vegas_cong_avoid() Lior Dotan
2007-05-29 15:05 ` Stephen Hemminger
2007-05-29 18:23 ` Lior Dotan
2007-05-29 22:02 ` Stephen Hemminger
2007-05-30 7:49 ` Ilpo Järvinen
2007-05-30 16:34 ` Stephen Hemminger
2007-05-30 18:56 ` Ilpo Järvinen [this message]
2007-05-29 20:22 ` Stephen Hemminger
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=Pine.LNX.4.64.0705302100500.26408@kivilampi-30.cs.helsinki.fi \
--to=ilpo.jarvinen@helsinki.fi \
--cc=liodot@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=shemminger@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).