From: Jonathan Morton <chromatix99@gmail.com>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: cake@lists.bufferbloat.net
Subject: Re: [Cake] Long-RTT broken again
Date: Sat, 7 Nov 2015 12:51:23 +0200 [thread overview]
Message-ID: <AC470211-5996-409B-8FE6-ACB016463F12@gmail.com> (raw)
In-Reply-To: <87y4eambyd.fsf@alrua-karlstad.karlstad.toke.dk>
Okay, I’ve tracked down the problem. Turns out to be one of C’s more subtle misfeatures.
I calculate the desired buffer size as rate * interval * 4. Since interval is in µs, rate * interval is a 64-bit temporary. However, I forgot to cast either of these operands to the new width first, so the upper half of the product was never calculated. After dividing by 250000, the resulting buffer size was 8918 bytes - which was clamped up to 64KB by a sanity check immediately afterwards.
It’s thus remarkable that we got as much throughput as we did.
While fixing this, I’m also adding configurability of the buffer limit and statistics of how much of the buffer was actually ever used. Additionally, I’m choosing a saner default for “unlimited” mode.
- Jonathan Morton
next prev parent reply other threads:[~2015-11-07 10:51 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-02 16:53 Toke Høiland-Jørgensen
2015-11-02 18:29 ` Sebastian Moeller
2015-11-03 1:39 ` Jonathan Morton
2015-11-03 8:20 ` Sebastian Moeller
2015-11-03 8:25 ` Jonathan Morton
2015-11-03 8:34 ` Sebastian Moeller
2015-11-03 10:29 ` Kevin Darbyshire-Bryant
2015-11-03 11:08 ` Sebastian Moeller
2015-11-03 11:45 ` Toke Høiland-Jørgensen
2015-11-03 11:57 ` Toke Høiland-Jørgensen
2015-11-03 12:41 ` Sebastian Moeller
2015-11-03 11:50 ` Toke Høiland-Jørgensen
2015-11-03 16:43 ` Jonathan Morton
2015-11-03 17:05 ` Toke Høiland-Jørgensen
2015-11-03 17:11 ` Sebastian Moeller
2015-11-03 17:25 ` Toke Høiland-Jørgensen
2015-11-03 17:31 ` Jonathan Morton
2015-11-03 17:33 ` Toke Høiland-Jørgensen
2015-11-03 17:46 ` Sebastian Moeller
2015-11-03 17:49 ` Toke Høiland-Jørgensen
2015-11-03 17:52 ` Sebastian Moeller
2015-11-03 17:54 ` Toke Høiland-Jørgensen
2015-11-03 17:57 ` Sebastian Moeller
2015-11-03 17:59 ` Toke Høiland-Jørgensen
2015-11-03 18:06 ` Sebastian Moeller
2015-11-03 19:17 ` Jonathan Morton
2015-11-03 19:24 ` Sebastian Moeller
2015-11-05 14:36 ` Toke Høiland-Jørgensen
2015-11-05 19:30 ` Jonathan Morton
2015-11-06 11:00 ` Toke Høiland-Jørgensen
2015-11-06 14:15 ` Toke Høiland-Jørgensen
2015-11-06 15:09 ` Toke Høiland-Jørgensen
2015-11-07 5:02 ` Jonathan Morton
2015-11-07 5:16 ` Dave Taht
2015-11-07 6:49 ` Jonathan Morton
2015-11-07 8:48 ` Toke Høiland-Jørgensen
2015-11-07 10:51 ` Jonathan Morton [this message]
2015-11-07 13:06 ` Jonathan Morton
2015-11-07 13:42 ` Toke Høiland-Jørgensen
2015-11-07 16:34 ` Toke Høiland-Jørgensen
2015-11-07 13:44 ` Toke Høiland-Jørgensen
2015-11-07 15:08 ` Sebastian Moeller
2015-11-07 16:24 ` Toke Høiland-Jørgensen
2015-11-07 18:25 ` Sebastian Moeller
2015-11-07 19:32 ` Kevin Darbyshire-Bryant
2015-11-08 16:29 ` Dave Taht
2015-11-11 10:23 ` Kevin Darbyshire-Bryant
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/cake.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=AC470211-5996-409B-8FE6-ACB016463F12@gmail.com \
--to=chromatix99@gmail.com \
--cc=cake@lists.bufferbloat.net \
--cc=toke@toke.dk \
/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