[Codel] [Bloat] [Cerowrt-devel] FQ_Codel lwn draft article review

Eric Dumazet eric.dumazet at gmail.com
Wed Nov 28 14:00:22 EST 2012

On Wed, 2012-11-28 at 09:44 -0800, Paul E. McKenney wrote:
> You lost me on this one.  It looks to me like net/sched/sch_fq_codel.c
> in fact does hash packets into flows, so FQ-CoDel is stochastic in the
> the same sense that SFQ is.  In particular, FQ-CoDel can hash a thin
> session into the same flow as a thick session, which really is the
> birthday effect.
> Now FQ-CoDel uses a 1024-bucket hash table compared to SFQ's default
> of 128 buckets, so FQ-CoDel will have smaller collision probabilities
> than will SFQ on a given set of flows.  In addition, FQ-CoDel seems
> to be able to tolerate a limited number of collisions among thin flows,
> while SFQ doesn't distinguish thin from thick.
> But the possibility of stochastic collision behavior really is there
> with FQ-CoDel.  I hasten to add that in practice, I do not expect this
> possibility of stochastic behavior to be a problem in the common case.
> Or am I missing your point?  Or perhaps your definition of either
> fairness or stochastic?

Thats absolutely correct, fq_codel uses a stochastic hashing exactly
like SFQ.

In fact, I wrote fq_codel using same base, after patching SFQ and
hitting some limits last year.

Note that I played a bit with a version using a non stochastic hash,
we tested it here in our labs.

This can help if you really want to avoid a thick flow sharing a thin
flow bucket, but given that all packets are going eventually into the
Internet (or equivalent crowded network), its not really a clear win.

Its more an academic issue...

More information about the Codel mailing list