[Cerowrt-devel] [PATCH 2/2] codel: reduce count after exiting dropping state after one maxpacket

dpreed at reed.com dpreed at reed.com
Thu Aug 23 15:17:13 EDT 2012


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 at bufferbloat.net>
Sent: Thursday, August 23, 2012 9:58am
To: cerowrt-devel at lists.bufferbloat.net
Subject: [Cerowrt-devel] [PATCH 2/2] codel: reduce count after exiting dropping state after one maxpacket



From: Dave Taht <dave.taht at 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 at lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/cerowrt-devel/attachments/20120823/bc838355/attachment-0002.html>


More information about the Cerowrt-devel mailing list