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.
>
>
>
>
next prev parent 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