From: dpreed@reed.com
To: "Dave Täht" <dave.taht@bufferbloat.net>
Cc: cerowrt-devel@lists.bufferbloat.net
Subject: Re: [Cerowrt-devel] [PATCH 2/2] codel: reduce count after exiting dropping state after one maxpacket
Date: Thu, 23 Aug 2012 15:17:13 -0400 (EDT) [thread overview]
Message-ID: <1345749433.571112868@apps.rackspace.com> (raw)
In-Reply-To: <1345730322-6255-3-git-send-email-dave.taht@bufferbloat.net>
[-- Attachment #1: Type: text/plain, Size: 2173 bytes --]
I would be cautious about cutting down the information rate to TCP. Remember the collection of TCP pairs are already seeking this information. You risk driving TCP's control loop crazy, especially if you end up "resonating" with it with positive feedback.
Rather than focus on "precision" or "stability" at the contended resource, remember the point is to minimize latency on an end-to-end basis so that all the TCP's can have tight control loops. Thus there is no "goal" to making the contended queue maximized in capacity. The goal is that it should drain quickly, which means keeping it small! The goal is (as the codel paper says) to use the *minimum* latency as the estimator, not the "average" or weighted (delayed) average.
Keep focused on the control theory principles, NOT on throughput maximization. If you push toward maximizing throughput at any cost, even with codel, you will end up with *large* excursions in latency that stick for a long time. I.e. bufferbloat.
-----Original Message-----
From: "Dave Täht" <dave.taht@bufferbloat.net>
Sent: Thursday, August 23, 2012 9:58am
To: cerowrt-devel@lists.bufferbloat.net
Subject: [Cerowrt-devel] [PATCH 2/2] codel: reduce count after exiting dropping state after one maxpacket
From: Dave Taht <dave.taht@bufferbloat.net>
At a knife's edge, where we are rapidly entering and existing
a dropping state, seek lower to find the optimimum.
---
include/net/codel.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/net/codel.h b/include/net/codel.h
index dbfccb7..5e85632 100644
--- a/include/net/codel.h
+++ b/include/net/codel.h
@@ -342,6 +342,9 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch,
vars->drop_next = codel_control_law(vars->drop_next,
params->interval,
vars->rec_inv_sqrt);
+ } else { /* we dropped out of the dropping state in 1 pkt */
+ vars->count = vars->count > 1 ? vars->count - 1 : 1;
+ codel_Newton_step(vars);
}
}
end:
--
1.7.9.5
_______________________________________________
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel
[-- Attachment #2: Type: text/html, Size: 2722 bytes --]
next prev parent reply other threads:[~2012-08-23 19:17 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-23 13:58 [Cerowrt-devel] Working towards reducing memory issues in cerowrt Dave Täht
2012-08-23 13:58 ` [Cerowrt-devel] [PATCH] codel: Refine re-entering drop state to react sooner Dave Täht
2012-08-23 13:58 ` [Cerowrt-devel] [PATCH 2/2] codel: reduce count after exiting dropping state after one maxpacket Dave Täht
2012-08-23 19:17 ` dpreed [this message]
2012-08-24 8:08 ` Dave Taht
2012-08-24 15:29 ` dpreed
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
List information: https://lists.bufferbloat.net/postorius/lists/cerowrt-devel.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1345749433.571112868@apps.rackspace.com \
--to=dpreed@reed.com \
--cc=cerowrt-devel@lists.bufferbloat.net \
--cc=dave.taht@bufferbloat.net \
/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