Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: Pete Heist <pete@heistp.net>
Cc: Cake List <cake@lists.bufferbloat.net>
Subject: Re: [Cake] 900mbit tbf + fq_codel vs cake on the apu2
Date: Wed, 22 Aug 2018 08:10:14 -0700	[thread overview]
Message-ID: <CAA93jw5ibRRLP0nPUVEdGO_fwkASxmRcB-bQaM+X9T3TjR4CuA@mail.gmail.com> (raw)
In-Reply-To: <CAA93jw4SVdOML-nt=d3GAbWaK_U4zRXG=zF_fdWv-Pwiovab3w@mail.gmail.com>

adding a basic shaper to fq_codel itself is kind of trivial. You need
to check if you are shaping

https://github.com/dtaht/sch_tart/blob/master/sch_tart.c#L329

Calculate the next start time:
https://github.com/dtaht/sch_tart/blob/master/sch_tart.c#L392

and calc the rate in setup and init the watchdog.

this was 40% faster than tbf + fq_codel in the good ole days and I
sometimes think about just adding it into fq_codel itself, where, in a
system already using it elsewhere, keeps the icache hotter as well.
I'm going to discard the work in sch_tart and try fiddling with
fq_codel again perhaps, but, also over the years, we've found that
multiple variables (flows, target, interval) were effectively
constants in 99% of cases, and I did want to restore my original work
on codel having saner responses to overload that I'd done in earlier
versions of cake... dunno. I *personally* need an inbound shaper that
cracks 120mbit on mips hardware.

...
I hadn't thought about additionally parallelizing the workload (which
has problems like adding way more queues than I'd like) much.
...

Now, done cleverly, shaping is also parralizable, with an atomic add
across this core variable, or a periodic rcu'd merge step of the
separate bandwidth clocks running.

The "clever" part is that :I've never figured out how two+ instances
of a qdisc (being directed by sch_mq) could share a tiny bit of data.
There *are* some per-cpu stats rcu'd in qdiscs and filters at this
point. and perhaps the per interface (as opposed to per qdisc) stats
are rcu'd enough to pull from periodically to compensate.

OFFTOPIC: seeing this go by gives me more hope on the rx path than
I've had in a while

https://lwn.net/SubscriberLink/763056/f9a20ec24b8d29dd/

  reply	other threads:[~2018-08-22 15:10 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-04 21:31 Dave Taht
2018-08-22  8:51 ` Pete Heist
2018-08-22 14:23   ` Dave Taht
2018-08-22 15:10     ` Dave Taht [this message]
2018-08-22 16:08       ` Pete Heist
2018-08-22 16:11         ` Dave Taht

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=CAA93jw5ibRRLP0nPUVEdGO_fwkASxmRcB-bQaM+X9T3TjR4CuA@mail.gmail.com \
    --to=dave.taht@gmail.com \
    --cc=cake@lists.bufferbloat.net \
    --cc=pete@heistp.net \
    /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