From: Alan Jenkins <alan.christopher.jenkins@gmail.com>
To: David Lang <david@lang.hm>
Cc: bloat@lists.bufferbloat.net
Subject: Re: [Bloat] Kirkwood BQL?
Date: Wed, 29 Jul 2015 19:51:49 +0100 [thread overview]
Message-ID: <55B920C5.3020201@gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1507291005380.16775@nftneq.ynat.uz>
On 29/07/15 18:07, David Lang wrote:
> On Wed, 29 Jul 2015, Alan Jenkins wrote:
>
>> On 29/07/15 12:24, Alan Jenkins wrote:
>>> On 29/07/15 05:32, Rosen Penev wrote:
>>>> Anyone know what the situation is with kirkwood and BQL? I found a
>>>> patch for it but have no idea if there are any issues.
>>>>
>>>> I have such a system but have no idea how to ascertain the efficacy
>>>> of BQL.
>>>
>>> To the latter:
>>>
>>> BQL works for transmissions that reach the full line rate (e.g. for
>>> 1000MB ethernet). It limits the queue that builds in the
>>> driver/device to the minimum they need. Then queue mostly builds in
>>> the generic networking stack, where it can be managed effectively
>>> e.g. by fq_codel.
>>>
>>> So a simple efficacy test is to run a transmission at full speed,
>>> and monitor latency (ping) at the same time. Just make sure the
>>> device qdisc is set to fq_codel. fq_codel effectively prioritizes
>>> ping, so the difference will be very easy to see.
>>>
>>> I don't know if there's any corner cases that want testing as well.
>
> BQL adjusts the number of packets that can be queued based on their
> size, so you can have far more 64 byte packets queued than you can
> have 1500 byte packets.
>
> do a ping flood of your network with different packet sizes and look
> at the queue lengths that are allowed, the queue length should be much
> higher with small packets.
>
>>> BQL can be disabled at runtime for comparison testing:
>>> http://lists.openwall.net/netdev/2011/12/01/112
>>>
>>> There's a BQL tool to see it working graphically (using readouts
>>> from the same sysfs directory):
>>> https://github.com/ffainelli/bqlmon
>>>
>>> My Kirkwood setup at home is weak, I basically never reach full link
>>> speed. So this might be somewhat academic unless you set the link
>>> speed to 100 or 10 using the ethtool command. (It seems like a good
>>> idea to test those speeds even if you can do better though). You
>>> probably also want to start with offloads (tso, gso, gro) disabled
>>> using ethtool, because they aggregate packets.
>>>
>>
>> a quick test with a 100M setting, connected to gigabit switch, and
>> flent tcp_download, shows ping under load increases to about 8ms.
>> Conclusion: the Debian kirkwood kernel probably isn't doing BQL for
>> me :).
>
> 8ms of latency under load is doing very well. what are you expecting?
>
> David Lang
Not to sound like half-way across adsl? I'm describing a LAN test at 100M.
Going against an x86 desktop on gigabit gives 1.2ms. That's more like
what I expected. But there's no bql driver, boo r8169, and 100M gives
about 4ms. Killing offloads doesn't seem to help.
On the laptop end I do have bql. On 100M it goes from about 6ms (with
bql disabled) to 2ms. After remembering to disable offloads, bql takes
it from 1.2ms to 0.7ms.
That final figure sounds good to me. I kind of expected a more dramatic
difference with BQL though.
I also found a simple check for bql (without looking at source code).
The sysfs directories will be present regardless
/sys/class/net/eth0/queues/tx-0/byte_queue_limits/
but if the "limit" file contains "0" even after a test, there's no BQL.
prev parent reply other threads:[~2015-07-29 18:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-29 4:32 Rosen Penev
2015-07-29 11:24 ` Alan Jenkins
2015-07-29 11:36 ` Alan Jenkins
2015-07-29 17:07 ` David Lang
2015-07-29 17:42 ` Dave Taht
2015-07-29 17:56 ` Rosen Penev
2015-07-29 18:56 ` Alan Jenkins
2015-07-29 18:51 ` Alan Jenkins [this message]
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=55B920C5.3020201@gmail.com \
--to=alan.christopher.jenkins@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=david@lang.hm \
/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