Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: Cake List <cake@lists.bufferbloat.net>
Subject: Re: [Cake] quick patch for split_gso
Date: Wed, 25 Jul 2018 14:21:33 -0700	[thread overview]
Message-ID: <CAA93jw61rp1qbxMraDP3E2h5Gsc7ks-n8PGtoQCMO7RG6HFa4g@mail.gmail.com> (raw)
In-Reply-To: <CAA93jw48GsM0P+FC+xSDZzayn+q2b6ukRYa-VoFdQfmV3yCDXQ@mail.gmail.com>

remarkable how sensitive this is. I went back to using the rate flags
(thus making this a binary option), consistently get bql of 45000 now.
I want me 50usec back!

Summary of tcp_nup test run 'split_gso_test_again_rate_flag_bql_auto'
(at 2018-07-25 21:13:13.816743):

                           avg       median          # data pts
 Ping (ms) ICMP :         0.85         0.82 ms              343
 TCP upload avg :       235.39       235.39 Mbits/s         301
 TCP upload sum :       941.57       941.57 Mbits/s         301
 TCP upload::1  :       235.32       235.45 Mbits/s         276
 TCP upload::2  :       235.41       235.42 Mbits/s         282
 TCP upload::3  :       235.42       235.42 Mbits/s         276
 TCP upload::4  :       235.42       235.43 Mbits/s         281

diff --git a/net/sched/sch_cake.c b/net/sched/sch_cake.c
index 539c949..f77c61f 100644
--- a/net/sched/sch_cake.c
+++ b/net/sched/sch_cake.c
@@ -2572,7 +2572,7 @@ static int cake_change(struct Qdisc *sch, struct
nlattr *opt,
        if (q->rate_bps && q->rate_bps <= CAKE_SPLIT_GSO_THRESHOLD)
                q->rate_flags |= CAKE_FLAG_SPLIT_GSO;
        else
-               q->rate_flags &= ~CAKE_FLAG_SPLIT_GSO;
+               q->rate_flags |= CAKE_FLAG_SPLIT_GSO;

        if (q->tins) {
                sch_tree_lock(sch);

On Wed, Jul 25, 2018 at 2:03 PM Dave Taht <dave.taht@gmail.com> wrote:
>
> so, I went and tested that patch. Turned out len was signed... I'd put
> it in the wrong place... and the very act of doing that test at all
> permutes the result.
>
> cake unshaped at 1gig, always splitting, ends up with a bql value of
> about 42,000, full throughput, e.g.
>
> if (skb_is_gso(skb)) {
>
> ...
>
>                            avg       median          # data pts
>  Ping (ms) ICMP :         0.80         0.77 ms              341
>  TCP upload avg :       235.40       235.39 Mbits/s         301
>  TCP upload sum :       941.61       941.55 Mbits/s         301
>  TCP upload::1  :       235.36       235.39 Mbits/s         290
>  TCP upload::2  :       235.46       235.39 Mbits/s         291
>  TCP upload::3  :       235.38       235.45 Mbits/s         275
>  TCP upload::4  :       235.41       235.44 Mbits/s         278
>
> conditionally splitting, either never or always, gives me bql of: 140852
>
>         if (skb_is_gso(skb) && len >= q->split_gso) {
>
>                            avg       median          # data pts
>  Ping (ms) ICMP :         1.64         1.71 ms              347
>  TCP upload avg :       235.40       235.38 Mbits/s         301
>  TCP upload sum :       941.59       941.52 Mbits/s         301
>  TCP upload::1  :       235.35       235.44 Mbits/s         280
>  TCP upload::2  :       235.40       235.39 Mbits/s         276
>  TCP upload::3  :       235.47       235.43 Mbits/s         276
>  TCP upload::4  :       235.37       235.45 Mbits/s         282
>
> the cache line miss can't possibly have cost that much. (?) Guess I
> have to go check the range of len.
>
> I WANT MY 800usec back!
>
> PS For giggles, I accidentally ended up using pfifo_fast for one run.
> I thought I'd broke something.
>
> Summary of tcp_nup test run 'split_gso_test_again_len_512000_bql_auto'
> (at 2018-07-25 20:51:10.533339):
>
>                            avg       median          # data pts
>  Ping (ms) ICMP :         3.32         3.59 ms              347
>  TCP upload avg :       235.38       235.38 Mbits/s         301
>  TCP upload sum :       941.52       941.54 Mbits/s         301
>  TCP upload::1  :       152.48       150.93 Mbits/s         281
>  TCP upload::2  :       152.54       150.35 Mbits/s         286
>  TCP upload::3  :       483.96       491.12 Mbits/s         284
>  TCP upload::4  :       152.54       150.49 Mbits/s         284
> On Tue, Jul 24, 2018 at 10:01 PM Dave Taht <dave.taht@gmail.com> wrote:
> >
> > Ah... 1gbit, BQL at a sane size, 750 usec RTT. I guess I have to go
> > compile this patch now.....
> >
> >
> > --
> >
> > Dave Täht
> > CEO, TekLibre, LLC
> > http://www.teklibre.com
> > Tel: 1-669-226-2619
>
>
>
> --
>
> Dave Täht
> CEO, TekLibre, LLC
> http://www.teklibre.com
> Tel: 1-669-226-2619



-- 

Dave Täht
CEO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-669-226-2619

      reply	other threads:[~2018-07-25 21:21 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-25  4:11 Dave Taht
2018-07-25  4:32 ` Dave Taht
2018-07-25  4:35   ` Dave Taht
2018-07-25  5:01     ` Dave Taht
2018-07-25 21:03       ` Dave Taht
2018-07-25 21:21         ` Dave Taht [this message]

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=CAA93jw61rp1qbxMraDP3E2h5Gsc7ks-n8PGtoQCMO7RG6HFa4g@mail.gmail.com \
    --to=dave.taht@gmail.com \
    --cc=cake@lists.bufferbloat.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