General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Jonathan Morton <chromatix99@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "codel@lists.bufferbloat.net" <codel@lists.bufferbloat.net>,
	bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] [Codel]  The challenge
Date: Wed, 16 May 2012 11:15:19 +0300	[thread overview]
Message-ID: <BBEA01D6-0714-4C5F-B2F0-515B4DEB0FD8@gmail.com> (raw)
In-Reply-To: <1337149906.8512.1141.camel@edumazet-glaptop>

I managed to run some quick tests this morning. Biggest factor was figuring out that ECN wasn't enabled on my Mac. This makes a significant difference to being able to observe it. 

So far all of the nice properties of SFQ seem to be intact (so at 128K I can still easily use SSH over a heavily loaded link), and furthermore I got to see ECN marking being performed and echoed on connections to real Internet servers. I think that led to zero packet loss but I need to inspect more before concluding that. 

So far, then, it seems to be working fine with no knobs set. That has to be a first. 

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

On 16 May 2012, at 09:31, Eric Dumazet <eric.dumazet@gmail.com> wrote:

> On Tue, 2012-05-15 at 23:09 -0700, Dave Taht wrote:
> 
>> I would certainly like more folk to analyse fq_codel, particularly in
>> the context of TCP mice and what we call ANTs these days. It seems to
>> be really excellent, but I too haven't had much time to look at it,
>> yet. It certainly does an even better job than codel of allowing
>> sparse streams through in my own testing, and I run it by default on
>> my laptops, wireless gear, routers and desktop at present. Under heavy
>> load things like cerowrt and ssh and other stuff like mosh, remain
>> incredibly responsive.
> 
> fq_codel is like SFQ but has following new features :
> 
> 1) More modern code :
>  - Less hardcoded limits
>    The only one remaining is the 65536 max flows limit, a linux qdisc
> limit. (uses u32 splitted in 16:16 for class ids)
>  - Easy to add new params in future (nested attributes)
> 
> 2) head drops. Give to TCP chance to react faster to congestions.
> 
> 3) Codel included (instead of pfifo)
> 
> 4) New flows have priority against old ones : Their first quantum (or
> first packet will be sent _before_ packets of old flows)
> 
> 5) More efficient code (less cache misses in high end configurations)
> 
> But if traffic consist of transient flows (one packet per flow, think of
> DDOS), your interactive traffic will suffer, there is no magic
> inside ;) 
> 
> Definition of a new flow :
> 
> A) enqueue() time : Packet is classified and map to an empty flow X (a
> flow that is not in a list (new or old)
>   Flow added at tail of 'new_flows' list. Initialize flow X quantum to
> 1514 (or configured quantum for fq_codel)
> 
> B) dequeue() time. Packet dequeued. flow moved to tail of 'old flows'
> list (if flow quantum exhausted)
> 
> C) if all flows present in 'old_flows' list are examined by dequeue(),
> we notice empty flows and they are removed from list.
> 
> If a packet comes for flow X :
> - If flow X still in a old/new queue, we let X in the list, and only
> add packet to the current list of packet for flow X.
> 
> 
> 
> 

  reply	other threads:[~2012-05-16  8:14 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-09  1:04 [Bloat] " Dave Taht
2012-05-09  2:02 ` Kevin Gross
2012-05-09  5:16 ` Simon Barber
2012-05-09  5:40   ` Eric Dumazet
2012-05-09  5:41     ` Dave Taht
2012-05-09  7:32       ` [Bloat] [codel] some numbers on dual 10Gb links Eric Dumazet
2012-05-09 13:04   ` [Bloat] The challenge Kevin Gross
2012-05-16  5:55     ` Jonathan Morton
2012-05-16  6:09       ` Eric Dumazet
2012-05-16  7:05         ` [Bloat] Exploring the potential of codel, fq_codel, and qfq dave taht
2012-05-16  7:20           ` Dave Taht
2012-05-16  7:42             ` Eric Dumazet
2012-05-16  7:46             ` Eric Dumazet
2012-05-16  8:17               ` Eric Dumazet
2012-05-16  9:02                 ` Jonathan Morton
2012-05-16  9:14                   ` Eric Dumazet
2012-05-16  9:31                     ` Jonathan Morton
2012-05-16  9:37                       ` Eric Dumazet
2012-05-16  9:59                         ` Jonathan Morton
2012-05-16 10:10                           ` Eric Dumazet
2012-05-16 13:58                 ` Eric Dumazet
2012-05-16 17:40               ` [Bloat] [Codel] " Rick Jones
2012-05-16 17:53                 ` Eric Dumazet
2012-05-16 17:33             ` Rick Jones
2012-05-16 17:48               ` Eric Dumazet
2012-05-16  6:09       ` [Bloat] The challenge Dave Taht
2012-05-16  6:31         ` [Bloat] [Codel] " Eric Dumazet
2012-05-16  8:15           ` Jonathan Morton [this message]
2012-05-09 19:10   ` [Bloat] " Roger Jørgensen
2012-05-09 19:15     ` Dave Taht
2012-05-09 19:28       ` Dave Taht
2012-05-09 20:02     ` Simon Barber
2012-05-09 20:06   ` Fred Baker
2012-05-09 21:47     ` Jim Gettys
2012-05-09 23:58       ` [Bloat] [Codel] " Eric Dumazet
2012-05-10  0:02         ` Steinar H. Gunderson
2012-05-10  0:08           ` Eric Dumazet
2012-05-10  0:08         ` Steinar H. Gunderson
2012-05-10  0:16           ` Eric Dumazet
2012-05-10  9:19             ` Steinar H. Gunderson
2012-05-10  9:27               ` Eric Dumazet
2012-05-10  9:38                 ` Steinar H. Gunderson
2012-05-10  2:34 ` [Bloat] " Jonathan Morton
2012-05-10  2:37   ` Dave Taht
2012-05-10  6:35     ` David Woodhouse
2012-05-10  6:54       ` Jonathan Morton
2012-05-10  7:02         ` David Woodhouse
2012-05-10 14:25           ` Justin McCann
2012-05-10 14:42             ` David Woodhouse
2012-05-10 15:34               ` Neil Davies
2012-05-10 21:20               ` [Bloat] [Codel] " Jim Gettys
2012-05-14  7:27           ` [Bloat] " Jonathan Morton
2012-05-14  7:34             ` [Bloat] [Codel] " Eric Dumazet
2012-05-14 13:55             ` [Bloat] " David Woodhouse
2012-05-18 20:56               ` [Bloat] Linux-able modems Jonathan Morton
2012-05-18 21:36                 ` Dave Taht
2012-05-18 22:34                   ` Dave Taht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/bloat.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BBEA01D6-0714-4C5F-B2F0-515B4DEB0FD8@gmail.com \
    --to=chromatix99@gmail.com \
    --cc=bloat@lists.bufferbloat.net \
    --cc=codel@lists.bufferbloat.net \
    --cc=eric.dumazet@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox