Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: Jonathan Morton <chromatix99@gmail.com>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: Pete Heist <pete@heistp.net>, Cake List <cake@lists.bufferbloat.net>
Subject: Re: [Cake] issue with Cake and bpf filter
Date: Mon, 13 Aug 2018 03:21:06 +0300	[thread overview]
Message-ID: <4D28C453-5378-4A5B-9E05-874F36C4DB30@gmail.com> (raw)
In-Reply-To: <85C60B2F-78D0-4AEE-871C-BB637785BF62@gmail.com>

> On 13 Aug, 2018, at 12:34 am, Jonathan Morton <chromatix99@gmail.com> wrote:
> 
>> On 12 Aug, 2018, at 10:42 pm, Toke Høiland-Jørgensen <toke@toke.dk> wrote:
>> 
>> Yes it does; setting tc_classid is one way to set the flow class that is
>> read by the call to tcf_classify(). I guess the problem is that
>> cake_hash() is bypassed, so the *host_refcnt variables are not
>> incremented.
>> 
>> There's been another report of the same issue on github; haven't had
>> time to look into it yet, but I guess this is the reason...
> 
> I'll see what I can do tonight, now that I understand the problem.

Oh, this is a mess.  Ultimately the problem stems from having previously factored out choosing tin and flow to two distinct functions, but now there's an external mechanism for overriding both at once, which can only hook into one or the other.

The easiest fix is to just remove the broken support for setting the flow ID via a filter, but leave in the support for setting the tin.  I think that's the most useful "simple" fix.  It's perhaps worth noting that this was the first thing I *removed* when reworking fq_codel into the first version of Cake, because I couldn't see a valid use for it.

The next simplest fix is to ignore the flow ID override unless we're in "flows" mode.  We can then make valid assumptions about what should go into the host tables.

The *right* fix, if we want to maximise functionality, would be to pass the result struct by reference into cake_hash(), where it can override the *host* IDs (not the flow ID).  Users can then choose between using the override as a flow ID (by setting "hosts" mode instead of "flows"), or retaining the default host-isolation semantics with a revised definition of "host".

I feel compelled to point out that baggage like this is probably at least some of why Cake is no longer faster than HTB+fq_codel, as it used to be.

 - Jonathan Morton


  reply	other threads:[~2018-08-13  0:21 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-12  8:17 Pete Heist
2018-08-12 10:23 ` Pete Heist
2018-08-12 13:41   ` Jonathan Morton
2018-08-12 19:42     ` Toke Høiland-Jørgensen
2018-08-12 21:34       ` Jonathan Morton
2018-08-13  0:21         ` Jonathan Morton [this message]
2018-08-13  5:44           ` Jonathan Morton
2018-08-13 11:01           ` Toke Høiland-Jørgensen
2018-08-21 11:25             ` Toke Høiland-Jørgensen
2018-08-21 21:06               ` Pete Heist
2018-08-21 21:17                 ` Toke Høiland-Jørgensen
2018-08-21 21:46                   ` Pete Heist
2018-08-22  9:49                     ` Toke Høiland-Jørgensen
2018-08-22  9:41                   ` Toke Høiland-Jørgensen
2018-08-22  6:17                 ` Jonathan Morton
2018-08-22  9:30                   ` Pete Heist
2018-08-22  9:37                     ` Toke Høiland-Jørgensen
2018-08-22  9:51                       ` Pete Heist
2018-08-22 10:00                         ` Jonathan Morton
2018-08-22 10:13                           ` Toke Høiland-Jørgensen
2018-08-22 10:32                             ` Pete Heist

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=4D28C453-5378-4A5B-9E05-874F36C4DB30@gmail.com \
    --to=chromatix99@gmail.com \
    --cc=cake@lists.bufferbloat.net \
    --cc=pete@heistp.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