[Bloat] Exploring the potential of codel, fq_codel, and qfq

Jonathan Morton chromatix99 at gmail.com
Wed May 16 02:59:43 PDT 2012


That's a pretty specific type of blackhole - one that can pass enough ECN information to permit negotiation of an ECN flow, but which then squashes Congestion Experienced codepoints. How common are those?

If fq_codel drops from the head of the longest flow when the queue is physically full, rather than the next one to be serviced, all should be well even in that case. 

The key to knowledge is not to rely on others to teach you it. 

On 16 May 2012, at 12:37, Eric Dumazet <eric.dumazet at gmail.com> wrote:

> On Wed, 2012-05-16 at 12:31 +0300, Jonathan Morton wrote:
>> There are two goals here. One: provide real feedback to TCPs so that
>> they know when the link is full and thus don't also fill up the buffer
>> constantly. Two: prevent flows from unduly interfering with each
>> other, so they don't have to fill the buffer just to be sure of good
>> throughput. 
>> 
>> What you seem to be saying is that you have a queue full of
>> unresponsive flows that aren't being dropped because they have ECN
>> support and are being marked instead. With FQ, that doesn't matter
>> because other flows can still get through with low latency, and in
>> fq_codel they are treated separately for mark/drop decision purposes.
>> And if the queue really does fill up physically, codel already drops
>> packets at head regardless of ECN capability. 
> 
> It matters because :
> 
> 1) We setup high limit for codel so "head drop" at enqueue time is a
> last resort thing.
> 
> 2) If you have ECN blackhole _after_ you, flow can be non responsive not
> because it doesnt want to, only because of the blackhole. Detecting a
> too long delay in this flow queue and reverting to drops instead of
> marks can help to recover from ECN blackhole.
> 
> 
> 


More information about the Bloat mailing list