General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: Jonathan Morton <chromatix99@gmail.com>
Cc: "cerowrt-devel@lists.bufferbloat.net"
	<cerowrt-devel@lists.bufferbloat.net>,
	bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] Comcast upped service levels -> WNDR3800 can't cope...
Date: Mon, 1 Sep 2014 10:01:45 -0700	[thread overview]
Message-ID: <CAA93jw6OUEXsOVQsUs+wWbSAmTQUhEukAXPd2=WrEo+_Fpin-g@mail.gmail.com> (raw)
In-Reply-To: <0DB9E121-7073-4DE9-B7E2-73A41BCBA1D1@gmail.com>

On Sun, Aug 31, 2014 at 3:18 AM, Jonathan Morton <chromatix99@gmail.com> wrote:
>
> On 31 Aug, 2014, at 1:30 am, Dave Taht wrote:
>
>> Could I get you to also try HFSC?
>
> Once I got a kernel running that included it, and figured out how to make it do what I wanted...
>
> ...it seems to be indistinguishable from HTB and FQ in terms of CPU load.

If you are feeling really inspired, try cbq. :) One thing I sort of
like about cbq is that it (I think)
(unlike htb presently) operates off an estimated size for the next
packet (which isn't dynamic, sadly),
where the others buffer up an extra packet until they can be delivered.

In my quest for absolutely minimal latency I'd love to be rid of that
last extra non-in-the-fq_codel-qdisc packet... either with a "peek"
operation or with a running estimate. I think this would (along with
killing the maxpacket check in codel) allow for a faster system with
less tuning (no tweaks below 2.5mbit in particular) across the entire
operational range of ethernet.

There would also need to be some support for what I call "GRO
slicing", where a large receive is split back into packets if a drop
decision could be made.

It would be cool to be able to program the ethernet hardware itself to
return completion interrupts at a given transmit rate (so you could
program the hardware to be any bandwidth not just 10/100/1000). Some
hardware so far as I know supports this with a "pacing" feature.

This doesn't help on inbound rate limiting, unfortunately, just egress.

> Actually, I think most of the CPU load is due to overheads in the userspace-kernel interface and the device driver, rather than the qdiscs themselves.

You will see it bound by the softirq thread, but, what, exactly,
inside that, is kind of unknown. (I presently lack time to build up
profilable kernels on these low end arches. )

> Something about TBF causes more overhead - it goes through periods of lower CPU use similar to the other shapers, but then spends periods at considerably higher CPU load, all without changing the overall throughput.

> The flip side of this is that TBF might be producing a smoother stream of packets.  The receiving computer (which is fast enough to notice such things) reports a substantially larger number of recv() calls are required to take in the data from TBF than from anything else - averaging about 4.4KB rather than 9KB or so.  But at these data rates, it probably matters little.

Well, htb has various tuning options (see quantum and burst) that
alter it's behavior along the lines of what you re seeing from tbf.

>
> FWIW, apparently Apple's variant of the GEM chipset doesn't support jumbo frames.  This does, however, mean that I'm definitely working with an MTU of 1500, similar to what would be sent over the Internet.
>
> These tests were all run using nttpc.  I wanted to finally try out RRUL, but the wrappers fail to install via pip on my Gentoo boxes.  I'll need to investigate further before I can make pretty graphs like everyone else.
>
>  - Jonathan Morton
>



-- 
Dave Täht

NSFW: https://w2.eff.org/Censorship/Internet_censorship_bills/russell_0296_indecent.article

  parent reply	other threads:[~2014-09-01 17:01 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-29 16:57 Aaron Wood
2014-08-29 17:03 ` Rick Jones
2014-08-29 17:11 ` Steinar H. Gunderson
2014-08-29 17:26   ` Jonathan Morton
2014-08-29 17:15 ` Jonathan Morton
2014-08-29 17:19 ` Jonathan Morton
2014-08-29 17:25 ` Sebastian Moeller
2014-08-29 18:06 ` Dave Taht
2014-08-30 11:02   ` Jonathan Morton
2014-08-30 13:03     ` Toke Høiland-Jørgensen
2014-08-30 17:33       ` Jonathan Morton
2014-08-30 20:47         ` Jonathan Morton
2014-08-30 22:30           ` Dave Taht
2014-08-31 10:18             ` Jonathan Morton
2014-08-31 10:21               ` Toke Høiland-Jørgensen
2014-09-01 17:01               ` Dave Taht [this message]
2014-09-01 18:06                 ` Jonathan Morton
2014-09-01 18:32                   ` Dave Taht
2014-09-01 20:25                     ` Aaron Wood
2014-09-01 21:43                       ` Jonathan Morton
2014-09-01 22:14                         ` Aaron Wood
2014-09-02  9:09                           ` David Lang
2014-09-02  9:27                           ` Jonathan Morton
2014-09-03  6:15                           ` Aaron Wood
2014-09-03  6:36                             ` David Lang
2014-09-03 11:08                             ` Jonathan Morton
2014-09-03 15:12                               ` Aaron Wood
2014-09-03 19:22                                 ` [Bloat] [Cerowrt-devel] " Sebastian Moeller
2014-09-03 19:30                                   ` Dave Taht
2014-09-03 23:17                                     ` Bill Ver Steeg (versteb)
2014-09-04  0:33                                       ` Dave Taht
2014-09-04  3:36                                         ` Jonathan Morton
2014-09-04 14:05                                         ` Bill Ver Steeg (versteb)
2014-09-04 15:10                                       ` Michael Richardson
2014-09-04  7:04                                     ` Sebastian Moeller
2014-09-04 11:15                                       ` Jonathan Morton
2014-09-04 11:23                                         ` Sebastian Moeller
2014-09-02  8:55                         ` Sebastian Moeller
2014-09-02 13:40                     ` [Bloat] " Jonathan Morton
2014-09-02 15:37                       ` Dave Taht
2014-09-02 15:47                         ` Jonathan Morton
2014-09-02 17:36                         ` Jonathan Morton
2014-09-02 17:41                           ` Dave Taht
2014-09-02 18:28                             ` Jonathan Morton
2014-09-03 11:04                         ` Jonathan Morton
2014-08-30 21:53     ` Stephen Hemminger
2014-08-30 11:14   ` Jonathan Morton
2014-08-30 17:19   ` Aaron Wood
2014-08-30 18:01     ` Jonathan Morton
2014-08-30 18:21     ` [Bloat] [Cerowrt-devel] " Sebastian Moeller

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='CAA93jw6OUEXsOVQsUs+wWbSAmTQUhEukAXPd2=WrEo+_Fpin-g@mail.gmail.com' \
    --to=dave.taht@gmail.com \
    --cc=bloat@lists.bufferbloat.net \
    --cc=cerowrt-devel@lists.bufferbloat.net \
    --cc=chromatix99@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