From: Eric Dumazet <eric.dumazet@gmail.com>
To: Dave Taht <dave.taht@gmail.com>, Cong Wang <xiyou.wangcong@gmail.com>
Cc: "Toke Høiland-Jørgensen" <toke@toke.dk>,
"Linux Kernel Network Developers" <netdev@vger.kernel.org>,
"Cake List" <cake@lists.bufferbloat.net>
Subject: Re: [Cake] [PATCH net-next v6] Add Common Applications Kept Enhanced (cake) qdisc
Date: Tue, 1 May 2018 09:06:53 -0700 [thread overview]
Message-ID: <dff5ba09-1b81-7cd8-4be3-e7a419797d8e@gmail.com> (raw)
In-Reply-To: <CAA93jw6F+c-QRXe+MA2QmRkwiKEBqFgOFKTvWGfO7FvCQ5tFvw@mail.gmail.com>
On 04/30/2018 02:27 PM, Dave Taht wrote:
> I actually have a tc - bpf based ack filter, during the development of
> cake's ack-thinner, that I should submit one of these days. It
> proved to be of limited use.
>
> Probably the biggest mistake we made is by calling this cake feature a
> filter. It isn't.
>
> Maybe we should have called it a "thinner" or something like that? In
> order to properly "thin" or "reduce" an ack stream
> you have to have a queue to look at and some related state. TC filters
> do not operate on queues, qdiscs do. Thus the "ack-filter" here is
> deeply embedded into cake's flow isolation and queue structures.
A feature eating packets _is_ a filter.
Given that a qdisc only sees one direction, I really do not get why ack-filter
is so desirable in a packet scheduler.
You have not provided any numbers to show how useful it is to maintain this
code (probably still broken btw, considering it is changing some skb attributes).
On wifi (or any half duplex medium), you might gain something by carefully
sending ACK not too often, but ultimately this should be done by TCP stack,
in well controlled environment [1], instead of middle-boxes happily playing/breaking
some Internet standards.
[1] TCP stack has the estimations of RTT, RWIN, throughput, and might be able to
avoid flooding the network with acks under some conditions.
Say RTT is 100ms, and we receive 1 packet every 100 usec (no GRO aggregation)
Maybe we do not really _need_ to send 5000 ack per second
(or even 10,000 ack per second if a hole needs a repair)
Also on wifi, the queue builds in the driver queues anyway, not in the qdisc.
So ACK filtering, if _really_ successful, would need to be modularized.
Please split Cake into a patch series.
Presumably putting the ack-filter on a patch of its own.
next prev parent reply other threads:[~2018-05-01 16:06 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-29 21:34 Toke Høiland-Jørgensen
2018-04-30 21:21 ` Cong Wang
2018-04-30 21:27 ` Dave Taht
2018-04-30 23:04 ` Cong Wang
2018-05-01 11:36 ` Toke Høiland-Jørgensen
2018-05-01 16:06 ` Eric Dumazet [this message]
2018-05-01 18:31 ` Jonathan Morton
2018-05-01 18:53 ` Toke Høiland-Jørgensen
2018-05-01 19:12 ` Eric Dumazet
2018-05-01 19:14 ` David Miller
2018-05-01 19:31 ` Toke Høiland-Jørgensen
2018-05-01 19:41 ` Eric Dumazet
2018-05-01 21:54 ` Toke Høiland-Jørgensen
2018-05-01 22:31 ` Cong Wang
2018-05-01 19:22 ` 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=dff5ba09-1b81-7cd8-4be3-e7a419797d8e@gmail.com \
--to=eric.dumazet@gmail.com \
--cc=cake@lists.bufferbloat.net \
--cc=dave.taht@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=toke@toke.dk \
--cc=xiyou.wangcong@gmail.com \
/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