[Codel] better mixing in fq_codel

Dave Taht dave.taht at gmail.com
Thu Aug 30 22:34:03 EDT 2012


On Thu, Aug 30, 2012 at 6:40 PM, Eric Dumazet <eric.dumazet at gmail.com> wrote:
> On Thu, 2012-08-30 at 16:19 -0700, Dave Taht wrote:
>
>> In that case it will deliver 3 acks in a row from
>> stream A, and then 3 acks in stream B, in the linux 3.5 version, and
>> push the the 1500 byte packet from my example to the old flows queue -
>
> Nope, the 1500 byte packet will be sent as normal (we obviously cant
> split a packet). If its the first packet (new flow), there wont be any
> penalty.
>
>> instead of delivering A 1 ack, B 1 ack, push the C 1500 byte packet to
>> the old flows queue, then deliver A,B,A,B,A,B, A, A, A etc (and note
>> with more flows mixing gets better) as I just proposed.
>
> Try to change quantum, and it will just work out of the box.

I think, eric, that you missed this portion of the idea, and that I
mis-commented it, and worse, overstated the effect of what I was
trying to do while watching it crash...

...and seeing through the dust and clouds... off in the distance...
the desirable behavior I'd been aiming for.

...

in fq_codel_enqueue...

                flow->deficit = min(q->quantum, qdisc_pkt_len(skb));
// put only 1 packet into the new flow queue unless it's more than
quantum (in which case it too will be kicked to old flows)



-- 
Dave Täht
http://www.bufferbloat.net/projects/cerowrt/wiki - "3.3.8-17 is out
with fq_codel!"



More information about the Codel mailing list