From: Jonathan Morton <chromatix99@gmail.com>
To: Dave Taht <dave.taht@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 21:06:56 +0300 [thread overview]
Message-ID: <DB33CAC6-C233-4CA5-ABD0-86216E440541@gmail.com> (raw)
In-Reply-To: <CAA93jw6OUEXsOVQsUs+wWbSAmTQUhEukAXPd2=WrEo+_Fpin-g@mail.gmail.com>
On 1 Sep, 2014, at 8:01 pm, Dave Taht wrote:
> 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.
It's also hilariously opaque to configure, which is probably why nobody uses it - the RED problem again - and the top link when I Googled for best practice on it gushes enthusiastically about Linux 2.2! The idea of manually specifying an "average packet size" in particular feels intuitively wrong to me. Still, I might be able to try it later on.
Most class-based shapers are probably more complex to set up for simple needs than they need to be. I have to issue three separate 'tc' invocations for a minimal configuration of each of them, repeating several items of data between them. They scale up reasonably well to complex situations, but such uses are relatively rare.
> 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 suspect that something like fq_codel which included its own shaper (with the knobs set sensibly by default) would gain more traction via ease of use - and might even answer your wish.
> 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.
Is there a summary of hardware features like this anywhere? It'd be nice to see what us GEM and RTL proles are missing out on. :-)
>> 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. )
When I eventually got RRUL running (on one of the AMD boxes, so the PowerBook only has to run the server end of netperf), the bandwidth maxed out at about 300Mbps each way, and the softirq was bouncing around 60% CPU. I'm pretty sure most of that is shoving stuff across the PCI bus (even though it's internal to the northbridge), or at least waiting for it to go there. I'm happy to assume that the rest was mostly kernel-userspace interface overhead to the netserver instances.
But this doesn't really answer the question of why the WNDR has so much lower a ceiling with shaping than without. The G4 is powerful enough that the overhead of shaping simply disappears next to the overhead of shoving data around. Even when I turn up the shaping knob to a value quite close to the hardware's unshaped capabilities (eg. 400Mbps one-way), most of the shapers stick to the requested limit like glue, and even the worst offender is within 10%. I estimate that it's using only about 500 clocks per packet *unless* it saturates the PCI bus.
It's possible, however, that we're not really looking at a CPU limitation, but a timer problem. The PowerBook is a "proper" desktop computer with hardware to match (modulo its age). If all the shapers now depend on the high-resolution timer, how high-resolution is the WNDR's timer?
- Jonathan Morton
next prev parent reply other threads:[~2014-09-01 18:07 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
2014-09-01 18:06 ` Jonathan Morton [this message]
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=DB33CAC6-C233-4CA5-ABD0-86216E440541@gmail.com \
--to=chromatix99@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=cerowrt-devel@lists.bufferbloat.net \
--cc=dave.taht@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