From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp111.iad.emailsrvr.com (smtp111.iad.emailsrvr.com [207.97.245.111]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by huchra.bufferbloat.net (Postfix) with ESMTPS id AF5EE21F0B6 for ; Thu, 23 Aug 2012 12:17:15 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp51.relay.iad1a.emailsrvr.com (SMTP Server) with ESMTP id 2467C202EA; Thu, 23 Aug 2012 15:17:14 -0400 (EDT) X-Virus-Scanned: OK Received: from legacy23.wa-web.iad1a (legacy23.wa-web.iad1a.rsapps.net [192.168.4.109]) by smtp51.relay.iad1a.emailsrvr.com (SMTP Server) with ESMTP id 9FC6E20273; Thu, 23 Aug 2012 15:17:13 -0400 (EDT) Received: from reed.com (localhost.localdomain [127.0.0.1]) by legacy23.wa-web.iad1a (Postfix) with ESMTP id 8C0C710A0001; Thu, 23 Aug 2012 15:17:13 -0400 (EDT) Received: by apps.rackspace.com (Authenticated sender: dpreed@reed.com, from: dpreed@reed.com) with HTTP; Thu, 23 Aug 2012 15:17:13 -0400 (EDT) Date: Thu, 23 Aug 2012 15:17:13 -0400 (EDT) From: dpreed@reed.com To: "=?utf-8?Q?Dave_T=C3=A4ht?=" MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_20120823151713000000_98801" Importance: Normal X-Priority: 3 (Normal) X-Type: html In-Reply-To: <1345730322-6255-3-git-send-email-dave.taht@bufferbloat.net> References: <1345730322-6255-1-git-send-email-dave.taht@bufferbloat.net> <1345730322-6255-3-git-send-email-dave.taht@bufferbloat.net> Message-ID: <1345749433.571112868@apps.rackspace.com> X-Mailer: webmail7.0 Cc: cerowrt-devel@lists.bufferbloat.net Subject: Re: [Cerowrt-devel] [PATCH 2/2] codel: reduce count after exiting dropping state after one maxpacket X-BeenThere: cerowrt-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: Development issues regarding the cerowrt test router project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Aug 2012 19:17:16 -0000 ------=_20120823151713000000_98801 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable =0AI would be cautious about cutting down the information rate to TCP. Re= member the collection of TCP pairs are already seeking this information. = You risk driving TCP's control loop crazy, especially if you end up "resona= ting" with it with positive feedback.=0A =0ARather than focus on "precision= " or "stability" at the contended resource, remember the point is to minimi= ze latency on an end-to-end basis so that all the TCP's can have tight cont= rol loops. Thus there is no "goal" to making the contended queue maximized= in capacity. The goal is that it should drain quickly, which means keepin= g it small! The goal is (as the codel paper says) to use the *minimum* la= tency as the estimator, not the "average" or weighted (delayed) average.=0A= =0AKeep focused on the control theory principles, NOT on throughput maximi= zation. If you push toward maximizing throughput at any cost, even with co= del, you will end up with *large* excursions in latency that stick for a lo= ng time. I.e. bufferbloat.=0A-----Original Message-----=0AFrom: "Dave T=C3= =A4ht" =0ASent: Thursday, August 23, 2012 9:58am= =0ATo: cerowrt-devel@lists.bufferbloat.net=0ASubject: [Cerowrt-devel] [PATC= H 2/2] codel: reduce count after exiting dropping state after one maxpacket= =0A=0A=0A=0AFrom: Dave Taht =0A=0AAt a knife's e= dge, where we are rapidly entering and existing=0Aa dropping state, seek lo= wer to find the optimimum.=0A---=0A include/net/codel.h | 3 +++=0A 1 fil= e changed, 3 insertions(+)=0A=0Adiff --git a/include/net/codel.h b/include/= net/codel.h=0Aindex dbfccb7..5e85632 100644=0A--- a/include/net/codel.h=0A+= ++ b/include/net/codel.h=0A@@ -342,6 +342,9 @@ static struct sk_buff *codel= _dequeue(struct Qdisc *sch,=0A vars->drop_next =3D codel_control_law(vars->= drop_next,=0A params->interval,=0A vars->rec_inv_sqrt);=0A+=09=09} else { /= * we dropped out of the dropping state in 1 pkt */=0A+=09=09=09vars->count = =3D vars->count > 1 ? vars->count - 1 : 1;=09=0A+=09=09=09codel_Newton_step= (vars);=0A }=0A }=0A end:=0A-- =0A1.7.9.5=0A=0A____________________________= ___________________=0ACerowrt-devel mailing list=0ACerowrt-devel@lists.buff= erbloat.net=0Ahttps://lists.bufferbloat.net/listinfo/cerowrt-devel ------=_20120823151713000000_98801 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

I would be= cautious about cutting down the information rate to TCP.   Remem= ber 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.

=0A

 

=0A

Rather than focus on= "precision" or "stability" at the contended resource, remember the point i= s 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 quickl= y, which means keeping it small!   The goal is (as the codel pape= r says) to use the *minimum* latency as the estimator, not the "average" or= weighted (delayed) average.

=0A

 <= /p>=0A

Keep focused on the control theory p= rinciples, NOT on throughput maximization.  If you push toward maximiz= ing throughput at any cost, even with codel, you will end up with *large* e= xcursions in latency that stick for a long time.  I.e. bufferbloat.=0A

-----Original Message-----
From: = "Dave T=C3=A4ht" <dave.taht@bufferbloat.net>
Sent: Thursday, Aug= ust 23, 2012 9:58am
To: cerowrt-devel@lists.bufferbloat.net
Subje= ct: [Cerowrt-devel] [PATCH 2/2] codel: reduce count after exiting dropping = state after one maxpacket

=0A
=0A

From: Dave Taht <dave.taht@bufferb= loat.net>

At a knife's edge, where we are rapidly entering an= d 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
in= dex dbfccb7..5e85632 100644
--- a/include/net/codel.h
+++ b/inclu= de/net/codel.h
@@ -342,6 +342,9 @@ static struct sk_buff *codel_dequeu= e(struct Qdisc *sch,
vars->drop_next =3D codel_control_law(vars-&g= t;drop_next,
params->interval,
vars->rec_inv_sqrt);
= +=09=09} else { /* we dropped out of the dropping state in 1 pkt */
+= =09=09=09vars->count =3D vars->count > 1 ? vars->count - 1 : 1;= =09
+=09=09=09codel_Newton_step(vars);
}
}
end:
--
1.7.9.5

______________________________________________= _
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net<= br />https://lists.bufferbloat.net/listinfo/cerowrt-devel

=0A
------=_20120823151713000000_98801--