From: Dave Taht <dave.taht@gmail.com>
To: David Lang <david@lang.hm>
Cc: Jonathan Morton <chromatix99@gmail.com>,
"cerowrt-devel@lists.bufferbloat.net"
<cerowrt-devel@lists.bufferbloat.net>
Subject: Re: [Cerowrt-devel] archer c7 v2, policing, hostapd, test openwrt build
Date: Sun, 22 Mar 2015 19:00:23 -0700 [thread overview]
Message-ID: <CAA93jw7PtFrhvKEqoOx3zo488KQ5ZN-tjf3WVwnu13qajzX9tg@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1503221844590.22474@nftneq.ynat.uz>
htb and ingress shaping are the biggest problems yes.
On Sun, Mar 22, 2015 at 6:45 PM, David Lang <david@lang.hm> wrote:
> On Mon, 23 Mar 2015, Jonathan Morton wrote:
>
>>> On 23 Mar, 2015, at 02:24, Dave Taht <dave.taht@gmail.com> wrote:
>>>
>>> I have long maintained it was possible to build a better fq_codel-like
>>> policer without doing htb rate shaping, ("bobbie"), and I am tempted
>>> to give it a go in the coming months.
>>
>>
>> I have a hazy picture in my mind, now, of how it could be made to work.
>>
>> A policer doesn’t actually maintain a queue, but it is possible to
>> calculate when the currently-arriving packet would be scheduled for sending
>> if a shaped FIFO was present, in much the same way that cake actually
>> performs such scheduling at the head of a real queue. The difference
>> between that time and the current time is a virtual sojourn time which can
>> be fed into the Codel algorithm. Then, when Codel says to drop a packet,
>> you do so.
1) Sorta. See act_police for how it is presently done. The code is
chock full of locks that
I don't think are needed, and very crufty and old.
From a control theory perspective, we are aiming for a target *rate*
rather than a target
*delay*, but we can use the same codel like methods to try to achieve
that rate - hit
flows once over a calculated interval, decrease the interval if it doesn't work.
on top of that you don't want to brick wall things but you do want to
identify and
only hit once individual flows, so once you go into drop(or mark) mode, hash
the 5 tuple, store the tuple + time in a small ring buffer, hit a
bunch of flows,
but never 2 packets from the same flow in a row.
keep a longer term rate (bytes/200ms) and a short term rate (say
bytes/20ms) to bracket what you need,
keep track of how much you exceeded the set rate for how long...
and it seemed doable to do it without inducing delays, but "bobbing"
up and down around the
set rate at a level that would not induce much extra latency on the
download on reasonable
timescales.
Still seemed like a lot of work for potentially no gain, at the time I
was thinking about it hard.
Couldn't figure out how to stably grown and shrink the size of the
needed ring buffer to
hit flows with...
Decided I'd rather go profile where we were going wrong, profiling was
broken, got burned
out on it all.
Thought my first step would be to add an ecn mode to act_police and
see what happened.
2) I'd really like to get rid of the needed act_mirred stuff and be
able to attach a true shaping
qdisc directly to the ingress portion of the qdisc.
3) /me has more brain cells working than he did 9 months ago.
>> Because there’s no queue management, timer interrupts nor flow
>> segregation, the overhead should be significantly lower than an actual
>> queue. And there’s a reasonable hope that involving Codel will give better
>> results than either a brick-wall or a token bucket.
>
>
> are we running into performance issues with fq_codel? I thought all the
> problems were with HTB or ingress shaping.
>
> David Lang
--
Dave Täht
Let's make wifi fast, less jittery and reliable again!
https://plus.google.com/u/0/107942175615993706558/posts/TVX3o84jjmb
next prev parent reply other threads:[~2015-03-23 2:00 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-23 0:24 Dave Taht
2015-03-23 0:31 ` Jonathan Morton
2015-03-23 1:10 ` Jonathan Morton
2015-03-23 1:18 ` Dave Taht
2015-03-23 1:34 ` Jonathan Morton
2015-03-23 1:45 ` David Lang
2015-03-23 2:00 ` Dave Taht [this message]
2015-03-23 2:10 ` Jonathan Morton
2015-03-23 2:15 ` Dave Taht
2015-03-23 2:18 ` Dave Taht
2015-03-23 6:09 ` Sebastian Moeller
2015-03-23 13:43 ` Jonathan Morton
2015-03-23 16:09 ` Sebastian Moeller
2015-03-24 0:00 ` Sebastian Moeller
2015-03-24 0:05 ` Dave Taht
2015-03-24 0:07 ` Sebastian Moeller
2015-03-24 3:16 ` Jonathan Morton
2015-03-24 7:47 ` Sebastian Moeller
2015-03-24 8:13 ` Jonathan Morton
2015-03-24 8:46 ` Sebastian Moeller
2015-03-29 1:14 ` Sebastian Moeller
2015-03-29 6:17 ` Jonathan Morton
2015-03-29 11:16 ` Sebastian Moeller
2015-03-29 12:48 ` Jonathan Morton
2015-03-29 14:16 ` Sebastian Moeller
2015-03-29 15:13 ` Jonathan Morton
2015-03-23 17:08 ` David Lang
2015-03-23 16:17 ` Sebastian Moeller
2015-03-23 16:27 ` Dave Taht
2015-03-23 17:07 ` David Lang
2015-03-23 18:16 ` Jonathan Morton
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/cerowrt-devel.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAA93jw7PtFrhvKEqoOx3zo488KQ5ZN-tjf3WVwnu13qajzX9tg@mail.gmail.com \
--to=dave.taht@gmail.com \
--cc=cerowrt-devel@lists.bufferbloat.net \
--cc=chromatix99@gmail.com \
--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