Development issues regarding the cerowrt test router project
 help / color / mirror / Atom feed
From: Dave Taht <dave@taht.net>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: Dave Taht <dave.taht@gmail.com>,
	cerowrt-devel <cerowrt-devel@lists.bufferbloat.net>,
	edumazet@google.com
Subject: Re: [Cerowrt-devel] fq_pie for linux
Date: Thu, 06 Dec 2018 12:03:06 -0800	[thread overview]
Message-ID: <87efau1kzp.fsf@taht.net> (raw)
In-Reply-To: <87bm5zgkkg.fsf@toke.dk> ("Toke \=\?utf-8\?Q\?H\=C3\=B8iland-J\?\= \=\?utf-8\?Q\?\=C3\=B8rgensen\=22's\?\= message of "Thu, 06 Dec 2018 09:50:55 +0200")

Toke Høiland-Jørgensen <toke@toke.dk> writes:

> Dave Taht <dave.taht@gmail.com> writes:
>
>> https://github.com/gautamramk/FQ-PIE-for-Linux-Kernel/issues/2
>
> With all the variants of fq+AQM, maybe decoupling the FQ part and the
> AQM part would be worthwhile, instead of reimplementing it for each
> variant...

I actually sat down to write a userspace implementation of the fq bits
in C with a pluggable AQM a while back. I called it "drrp".

I think that there are many applications today that do too much
processing per packet, and end up with their recv socket buffer
overflowing (ENOBUFS) and tail-dropping in the kernel. I've certainly
seen this with babeld, in particular.

So by putting an intervening layer around the udp recv call to keep
calling that as fast as possible, and try to FQ and AQM the result, I
thought we'd get better fairness between different flows over udp and a
smarter means of shedding load when that was happening.

Then... there was all this activity recently around other approaches to
the udp problem in the kernel, and I gave up while that got sorted out.

(I'd rather like a setsockopt that sorted packets in the recv socket
buffer and head-dropped... )

While trying to work entirely from memory, using things like queue.h's
TAILQ macros... it ended up looking almost exactly like eric's code
(because that's so perfect! :)) and what I really needed (for babel) was
a version that was BSD-licensed. So I figured I'd look hard at the freeBSD
version and try to write from that... or a hard look at cake... and
never got back to it.

I guess we could ask eric if he'd mind if we just ported fq_codel to
userspace and relicensed. Wouldn't mind a go and rust version while
we're at it...

The only difference in what I wrote was that I never liked the "search
all the queues on overload" bit in fq_codel and just did that
inline. This looked to work well with the bulk dropper.

>
> -Toke
> _______________________________________________
> Cerowrt-devel mailing list
> Cerowrt-devel@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cerowrt-devel

  reply	other threads:[~2018-12-06 20:03 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-05 22:27 Dave Taht
2018-12-06  7:50 ` Toke Høiland-Jørgensen
2018-12-06 20:03   ` Dave Taht [this message]
2018-12-06 19:13     ` David Lang
2018-12-06 20:21       ` Dave Taht
2018-12-11 18:32   ` Aaron Wood
2018-12-11 18:37     ` Dave Taht
2018-12-11 18:38       ` Dave Taht
2018-12-11 18:38     ` Jonathan Morton
2018-12-11 18:39       ` Dave Taht
2018-12-11 20:23       ` Toke Høiland-Jørgensen
2018-12-11 20:35         ` 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/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=87efau1kzp.fsf@taht.net \
    --to=dave@taht.net \
    --cc=cerowrt-devel@lists.bufferbloat.net \
    --cc=dave.taht@gmail.com \
    --cc=edumazet@google.com \
    --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