[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <52171289-4135-35c1-7ff0-fb2396cca2cf@tarent.de>
Date: Sat, 27 Aug 2022 03:16:38 +0200 (CEST)
From: Thorsten Glaser <t.glaser@...ent.de>
To: Jakub Kicinski <kuba@...nel.org>
cc: netdev@...r.kernel.org
Subject: Re: inter-qdisc communication?
On Fri, 26 Aug 2022, Jakub Kicinski wrote:
> These days the recommendation for adding workload specific sauce
> at the qdisc layer is to use the fq qdisc (mq + fq if you have
> a multi queue device) and add a BPF program on top (cls-bpf)
> which sets transmission times for each packet.
We started with fq_codel layered on htb (though tbf probably would
have sufficed) for bw limiting, but this turned out to both do too
much and be too hard to extend. I also added deep packet inspection
and relayfs/debugfs reporting so it’s quite a bit…
… plus this also wouldn’t help me on the ingress side.
> Obviously you can still write a qdisc if you wish or your needs
> are sufficiently hardcore.
After months of working with the above scenario, I finally think
I understand enough to do so, and for our testbed a basic FIFO
setup as backing suffices, though I did a three-FIFO setup similar
to the default qdisc. The added juice is where my headaches lie…
(The customer is not only ok with this being developed as FOSS but
even requested this so I could link if there’s actual interest, or
desire to critique ;)
> On the docs, nothing official AFAIK, if it doesn't pop up in
> the first two pages of Google results it probably doesn't exist :(
Yeah :/
Worse, many of these things that *do* show up no longer exist.
I find references to documentation that used to be either in the
Linux tree or in manpages all the time :(
At this point I’d be glad for something on the API docs level,
what functions I need to provide, what can I call, what can I
expect, what is expected of me. These things. I figured out the
watchdog thing can be used for packet pacing which I used for
bw limiting in the new qdisc even.
But now… shared state between different LKMs even? Also, I’ve
never programmed in a multithreaded environment before save for
a tiny network demo in Java™… not needed it in my decades (my
main personal experience lays in an old BSD).
bye,
//mirabilos
--
Infrastrukturexperte • tarent solutions GmbH
Am Dickobskreuz 10, D-53121 Bonn • http://www.tarent.de/
Telephon +49 228 54881-393 • Fax: +49 228 54881-235
HRB AG Bonn 5168 • USt-ID (VAT): DE122264941
Geschäftsführer: Dr. Stefan Barth, Kai Ebenrett, Boris Esser, Alexander Steeg
****************************************************
/⁀\ The UTF-8 Ribbon
╲ ╱ Campaign against Mit dem tarent-Newsletter nichts mehr verpassen:
╳ HTML eMail! Also, https://www.tarent.de/newsletter
╱ ╲ header encryption!
****************************************************
Powered by blists - more mailing lists