General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Jim Gettys <jg@freedesktop.org>
To: Juliusz Chroboczek <jch@pps.jussieu.fr>
Cc: bloat@lists.bufferbloat.net
Subject: Re: [Bloat] Buffer bloat at the sender [was: About Stochastic Fair Blue (SFB)]
Date: Fri, 04 Feb 2011 13:24:58 -0500	[thread overview]
Message-ID: <4D4C447A.6070307@freedesktop.org> (raw)
In-Reply-To: <871v3nemck.fsf_-_@trurl.pps.jussieu.fr>

On 02/04/2011 12:33 PM, Juliusz Chroboczek wrote:
>> Juliusz,  have you thought about the host case at all?
>
>> One of the places we're getting insane buffering is in the operating
>> systems themselves (e.g. the experiment I did with a 100Mbps
>> switch).
>
> Yes.  You have three to four layers of buffering:
>
>    (1) the device driver's buffer;
>    (2) the packet scheduler's buffer;
>    (3) TCP's buffer;
>    (4) the application's buffer.

There are a few more than the four you identify:
	5) sometimes device drivers have some private buffers, independent of 
the device itself; for example the Marvell driver for the wireless 
module used on OLPC has such an internal buffer; dwmw2 used it to 
simplify his locking problems with USB.
	6) the device themselves may have buffers.  Again, on the OLPC wireless 
module (which does a form of mesh routing internally, without needing 
host support), there are 4 packet buffers out in the device (which is 
itself an ARM processor with hundreds of kilobytes of code).

I also hypothesise that there could be busses that support multiple 
outstanding transactions, that could add yet more buffering. I have no 
idea if this hypothesis is true.

>
> It will come as no surprise to the readers of this list that (1) and (2)
> are usually too large.  For example, (1) the ath9k driver has a buffer
> of 200 packets; and (2) the default scheduler queue is 1000 packets (!).
>
>> My intuition is that we have to do AQM in hosts, not just routers.
>
> Hmm... I would argue that the sending host is somewhat easier than the
> intermediate router.  In the sender, the driver/packet scheduler can
> apply backpressure to the transport layer, to cause it to slow down
> without the need for the lengthy feedback loop that dropping/delaying
> a packet in an intermediate router has to rely on [1].

Yup.  I was noting, however, with 1-4 above, we today have a major 
problem here in practice.

And I don't know if there is any way to signal back pressure to UDP 
based protocols; I've never worked on one.
>
> Unfortunately, at least under Linux, most drivers do not apply
> backpressure correctly.  Markus Kittenberger has recently determined [2]
> that among b43-legacy, ath5k, ath9k and madwifi, only the former two do
> the right thing.

Yes, the host side can and should apply backpressure correctly, and it 
may be an easier case.  It sounds like we have work to that area to do.

>
> --Juliusz
>
> [1] Now why did we give up on source quench again?
> [2] http://article.gmane.org/gmane.network.olsr.user/4264
>


  reply	other threads:[~2011-02-04 18:25 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-04  9:46 [Bloat] About Stochastic Fair Blue (SFB) Juliusz Chroboczek
2011-02-04 13:56 ` Jim Gettys
2011-02-04 17:33   ` [Bloat] Buffer bloat at the sender [was: About Stochastic Fair Blue (SFB)] Juliusz Chroboczek
2011-02-04 18:24     ` Jim Gettys [this message]
2011-02-04 18:58       ` [Bloat] Buffer bloat at the sender Juliusz Chroboczek
2011-02-04 19:26         ` Dave Täht
2011-02-04 18:43     ` Dave Täht
2011-02-04 18:56       ` Juliusz Chroboczek
2011-02-04 19:58         ` Dave Täht
2011-02-04 20:14           ` Juliusz Chroboczek
2011-02-04 15:12 ` [Bloat] About Stochastic Fair Blue (SFB) Dave Täht
2011-02-04 17:41   ` Juliusz Chroboczek
2011-02-04 18:54     ` Dave Täht
2011-02-04 19:02       ` Juliusz Chroboczek

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=4D4C447A.6070307@freedesktop.org \
    --to=jg@freedesktop.org \
    --cc=bloat@lists.bufferbloat.net \
    --cc=jch@pps.jussieu.fr \
    /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