From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qa0-x232.google.com (mail-qa0-x232.google.com [IPv6:2607:f8b0:400d:c00::232]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by huchra.bufferbloat.net (Postfix) with ESMTPS id BAE2321F1AA for ; Thu, 5 Dec 2013 11:49:51 -0800 (PST) Received: by mail-qa0-f50.google.com with SMTP id i13so137079qae.16 for ; Thu, 05 Dec 2013 11:49:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=WU/+EmZzCYOo37EYctPeoHYGatzYZLvBmE6jITclB/A=; b=l505NuVUFQH74ZZKE2JscZirQtsO1bAGYNCUgZ1SCTh6ua7lHyaCnE+ZGdHfERbl2i n1PyBhMpHStHUDU4PP/BqXI94XlWPqu2o/4lXWdZFRgM73nj6zCI/+6NoYs6xgijIIOn R9ZVifefytdUnF3RzhnsEgOfy7/clFljd5p/g6Z9cfuPfRGb4ozicGMp6gKjFE6xx5HJ Ow4QASL6Lb75vp/66SeHYOY2eYfEDHXTYMS1iJ0ZblZ/1ssy8MXWyUC62qej9FgIqfOX tlwEc7IE5fkaZGhHFZaSv30mw1CTxPwRcFTDM7YBBUek6J69cFnxvrPTnZ3IN8ZS5Nwz 8NRQ== MIME-Version: 1.0 X-Received: by 10.229.134.200 with SMTP id k8mr52654200qct.16.1386272990711; Thu, 05 Dec 2013 11:49:50 -0800 (PST) Received: by 10.96.62.66 with HTTP; Thu, 5 Dec 2013 11:49:50 -0800 (PST) In-Reply-To: References: Date: Thu, 5 Dec 2013 13:49:50 -0600 Message-ID: From: Dong Mo To: Dave Taht Content-Type: multipart/alternative; boundary=001a113331662c703604ecced548 Cc: codel@lists.bufferbloat.net Subject: Re: [Codel] New to codel-- how to run codel on a linux box? X-BeenThere: codel@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list List-Id: CoDel AQM discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Dec 2013 19:49:52 -0000 --001a113331662c703604ecced548 Content-Type: text/plain; charset=ISO-8859-1 The reason I am confused is that when I use this combination of commands: tc qdisc add dev $IFACE root handle 1: htb default 1 tc class add dev $IFACE parent 1: classid 1:1 htb rate 40mbit tc qdisc del dev eth4 parent 1:1 handle 10: sfq perturb 10 And sending packet from the sender, where qdisc is set, to the receiver, the queuing delay is quite small and is approximately the same as when fq_codel enabled. However, if I am not using sfq, and send only one flow over this link, the delay will explode again. So is sfq here cut off the queue length somehow? How should I make a bufferbloat fair queue on linux box using tc qdisc? Thanks -Mo 2013/12/5 Dong Mo > Thanks for the reply and I think I have successfully set up codel. > Unfortunately I am also new to qdisc. > > I am trying to compare fq_codel and sfq's performance. I was wondering how > to setup a software rate limiting using htb and at the same time have sfq > on this bottleneck link using qdisc. > > Thank you so much! > -Mo > > > 2013/11/23 Dave Taht > >> Why burst 15k? Quantum 1514 works for me. >> >> While htb will give the best results it is also the most CPU intensive. >> >> I also note that running it on ingress can be useful especially with ecn. >> >> IF you have a simple network driver with no ring buffer... Or you have >> working BQL... And you want to run at line rate at 100 Mbit... You can >> tell your Ethernet driver to switch to 100mbit via >> >> ethtool -s your device advertise 0x008 >> >> See also caveats on tso etc: >> >> >> http://www.bufferbloat.net/projects/codel/wiki/Best_Practices_for_Benchmarking_CoDel_and_FQ_CoDel >> On Nov 23, 2013 2:26 AM, "Jonathan Morton" >> wrote: >> >>> >>> On 23 Nov, 2013, at 7:04 am, Dong Mo wrote: >>> >>> > I am new to codel and I would like to run some experiments with codel >>> on a linux box acting as a router. I see on the wiki that running codel on >>> linux requires BQL support from NIC driver. I would like to know is this an >>> essential requirement to run codel on linux box or it is optional? >>> >>> It's not a hard requirement - but large hardware queues (which BQL tries >>> to solve) tend to interfere with line-rate operation. >>> >>> > I don't require line rate performance, something like 100Mbps >>> throughput will be enough for the experiment. However, It is also not clear >>> to me that how Codel is going to interact with some software traffic >>> shaping say bandwidth limiting? >>> >>> tc qdisc add dev $IFACE root handle 1: htb default 1 >>> tc class add dev $IFACE parent 1: classid 1:1 htb rate $RATE burst 15k >>> tc qdisc add dev $IFACE parent 1:1 handle 10: fq_codel >>> >>> That works perfectly well if $RATE is less than line rate, even without >>> BQL. >>> >>> - Jonathan Morton >>> >>> _______________________________________________ >>> Codel mailing list >>> Codel@lists.bufferbloat.net >>> https://lists.bufferbloat.net/listinfo/codel >>> >> > --001a113331662c703604ecced548 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
The reason I am confused is that when I use this combinati= on of commands:

tc qdisc add dev $IFACE root handle 1: htb def= ault 1
= tc class add dev $IFACE parent 1: classid 1:1 htb rate 40mbit
tc qdisc del dev eth4 parent 1:1 handle 10: sfq perturb 10

And sending packet from the sender, where qdisc i= s set, to the receiver, the queuing delay is quite small and is approximate= ly the same as when fq_codel enabled.

However, if = I am not using sfq, and send only one flow over this link, the delay will e= xplode again.

So is sfq here cut off the queue length somehow? How sh= ould I make a bufferbloat fair queue on linux box using tc qdisc?

Thanks
-Mo


2013/12/5 Dong Mo <= montedong@gmail.co= m>
Thanks for the reply and I think I have successfully set u= p codel. Unfortunately I am also new to qdisc.

I am tryi= ng to compare fq_codel and sfq's performance. I was wondering how to se= tup a software rate limiting using htb and at the same time have sfq on thi= s bottleneck link using qdisc.

Thank you so much!
-Mo


2013/11/23 Dave Taht <dave.taht@gmail.com>

Why burst 15k? Quantum 1514 w= orks for me.

While htb will give the best results it is also the most CPU= intensive.

I also note that running it on ingress can be useful especia= lly with ecn.

IF you have a simple network driver with no ring buffer... O= r you have working BQL... And=A0 you want to run at line rate at 100 Mbit..= . You can tell your Ethernet driver to switch to 100mbit via

ethtool -s your device advertise 0x008

See also caveats on tso etc:

http://= www.bufferbloat.net/projects/codel/wiki/Best_Practices_for_Benchmarking_CoD= el_and_FQ_CoDel

On Nov 23, 2013 2:26 AM, "Jonatha= n Morton" <chromatix99@gmail.com> wrote:

On 23 Nov, 2013, at 7:04 am, Dong Mo wrote:

> I am new to codel and I would like to run some experiments with codel = on a linux box acting as a router. I see on the wiki that running codel on = linux requires BQL support from NIC driver. I would like to know is this an= essential requirement to run codel on linux box or it is optional?

It's not a hard requirement - but large hardware queues (which BQL trie= s to solve) tend to interfere with line-rate operation.

> I don't require line rate performance, something like 100Mbps thro= ughput will be enough for the experiment. However, It is also not clear to = me that how Codel is going to interact with some software traffic shaping s= ay bandwidth limiting?

tc qdisc add dev $IFACE root handle 1: htb default 1
tc class add dev $IFACE parent 1: classid 1:1 htb rate $RATE burst 15k
tc qdisc add dev $IFACE parent 1:1 handle 10: fq_codel

That works perfectly well if $RATE is less than line rate, even without BQL= .

=A0- Jonathan Morton

_______________________________________________
Codel mailing list
Codel@list= s.bufferbloat.net
= https://lists.bufferbloat.net/listinfo/codel


--001a113331662c703604ecced548--