[Codel] exploring alternate codel and fq_codel ideas

Dave Taht dave.taht at gmail.com
Sat Sep 1 17:02:17 EDT 2012

I finally did get a working version of the ns2 based codel.h code, and
instead of hacking on fq_codel directly,
I started adding versions so as to be able to compare new and old more
directly. I'm thinking of re-activating
debloat-testing for this purpose. What I did was just do a codel2.h,
and did yer basic copy of sch_fq_codel to:

sch_nfq_codel: the same as fq_codel, but using codel2.h
sch_wfq_codel: weighted fq - Adding depriorizitation for CS1 and
perhaps a different drop strategy for EF
(the overall goal is to be slightly closer to PFIFO_FAST's behavior)
sch_mfq_codel: replacement for sch_mq specific for wifi (I haven't
made any progress on this btw)
sch_efq_codel: a place for the craziest ideas

The biggest reason for this is my "compile, backport, deploy, test on
lots of stuff" cycle is just way too long, and the secondary purpose
is with the host based debloating techniques going on, I want to steer
clear of that at the risk of having to recomplicate my tests even
more, so this lets me fiddle with 5 versions at a time per
compile/build cycle for x86 and for cerowrt.

I have little doubt that we will need something special for wifi, and
it may not be successful at this layer.

As for "nfq", I'm hoping that codel2.h wins, but coping with TSQ blew
up my tests (in a good way!!!), and I haven't found one piece of magic
for the TSQ backport.


So I can stick these git trees (linux-3.6 and iproute) up somewhere.
But I don't know who besides me would use it.
Can also supply binary builds of x86 versions. And/or patches. Anyone?

What I'd hoped to assemble by linux plumbers was a set of data that
looked at bidirectional  throughput, queue depth, contending voip-like
streams, ledbat vs cubic, on ethernet/wifi, at a range of symmetric
and asymmetric bandwidths, using not just netperf but things like
google chrome, vs red/sfq/codel/fq_codel/etc...

And oh, lord, I'd overshot my task and got nearly nothing done
instead. I dug a terrible hole for myself.

I would like very much for there to be a testbed effort somewhere that
tried to do this on a regular basis, simulating the internet, and
common use patterns, which would include the datacenter, but would
also tackle
3g, wifi, and it would be darn useful to also deal with aggregation
technologies like gpon, cable, and wifi.

while I'm building a new testbed specifically for looking at long rtts
(thx vyatta!), it's going to be so limited compared to the size of the

I spent the rest of last month cross-checking everybody's work, line
by line, looking at the results, and why we had those results, and
trying (in particular) to understand with the under heavy load queue
overexpansion and overcollapse problems both the current linux codel.h
code and the almost-entirely-ns2-derived codel2.h share...

Still, as wet paint goes, it's the best game in town.

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