From: Dave Taht <dave.taht@gmail.com>
To: Sebastian Moeller <moeller0@gmx.de>
Cc: bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] fq_codel on macosx
Date: Sat, 8 Sep 2018 08:54:36 -0700 [thread overview]
Message-ID: <CAA93jw5kVkJUF3y55usteZ9Yzmyr6qXqJC+JhJqoLViH9FJudQ@mail.gmail.com> (raw)
In-Reply-To: <CAA93jw41TO9=WN+1_CCWva1e2C4ZBQQntdKogAJ8Zek3KN73vg@mail.gmail.com>
[ flow control: 86 feedback: 86 stalls: 4 failed: 0 ]
[ drop overflow: 3116 early: 854 memfail: 0 duprexmt:0 ]
Not sure what this means. I think they are using fairly short queues
(which is fine given this is a wifi box),
so they are taking advantage of the fq, but tail dropping a lot.
"Early" would be my guess for codel itself
engaging. As for flow control? ecn? Dunno. I've not looked at direct
packet captures much on osx. Now I shall.
I note I recently added something to increase the signal strength in
fq_codel's bulk dropper, based on my observation that with openwrt's
shorter queues (1000 packets) it still tail dropped a lot, and you
could clearly see a bifurcation in flow behaviors when that started
happening.
https://github.com/dtaht/fq_codel_fast
On Sat, Sep 8, 2018 at 8:24 AM Dave Taht <dave.taht@gmail.com> wrote:
>
> On Sat, Sep 8, 2018 at 8:12 AM Sebastian Moeller <moeller0@gmx.de> wrote:
> >
> > Hi Dave,
> >
> > Jason Woringen just told me that macosx seems to include fq_codel now as well as some involved priority queues that I can not make much sense of. It might simply have inherited this from its freebsd underpinnings...
>
> Wow. I had no idea. I know that they enabled tcp ecn universally last
> year... but not fq_codel!! Holy cow!
>
> Same here on my air....
>
> daves-Air-3:wiki d$ netstat -I en0 -qq
>
> en0:
>
> [ sched: FQ_CODEL qlength: 0/128 ]
>
> [ pkts: 0 bytes: 0 dropped pkts: 13262
> bytes: 8469105 ]
>
> =====================================================
>
> [ pri: VO (1) srv_cl: 0x400180 quantum: 600 drr_max: 8 ]
>
> [ queued pkts: 0 bytes: 0 ]
>
> [ dequeued pkts: 380295 bytes: 47356766 ]
>
> [ budget: 0 target qdelay: 10.00 msec update interval:100.00 msec ]
>
> [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
>
> [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
>
> [ flows total: 0 new: 0 old: 0 ]
>
> [ throttle on: 0 off: 0 drop: 0 ]
>
> =====================================================
>
> [ pri: VI (2) srv_cl: 0x380100 quantum: 3000 drr_max: 6 ]
>
> [ queued pkts: 0 bytes: 0 ]
>
> [ dequeued pkts: 4339 bytes: 321840 ]
>
> [ budget: 0 target qdelay: 10.00 msec update interval:100.00 msec ]
>
> [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
>
> [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
>
> [ flows total: 0 new: 0 old: 0 ]
>
> [ throttle on: 0 off: 0 drop: 0 ]
>
> =====================================================
>
> [ pri: BE (7) srv_cl: 0x0 quantum: 1500 drr_max: 4 ]
>
> [ queued pkts: 0 bytes: 0 ]
>
> [ dequeued pkts: 40497473 bytes: 11269032336 ]
>
> [ budget: 0 target qdelay: 10.00 msec update interval:100.00 msec ]
>
> [ flow control: 86 feedback: 86 stalls: 4 failed: 0 ]
>
> [ drop overflow: 3116 early: 854 memfail: 0 duprexmt:0 ]
>
> [ flows total: 0 new: 0 old: 0 ]
>
> [ throttle on: 0 off: 0 drop: 0 ]
>
> =====================================================
>
> [ pri: BK (8) srv_cl: 0x100080 quantum: 1500 drr_max: 2 ]
>
> [ queued pkts: 0 bytes: 0 ]
>
> [ dequeued pkts: 1553687 bytes: 358969659 ]
>
> [ budget: 0 target qdelay: 10.00 msec update interval:100.00 msec ]
>
> [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
>
> [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
>
> [ flows total: 0 new: 0 old: 0 ]
>
>
>
> > en4 is 1Gbps ethernet
> > macbook:~ user$ netstat -I en4 -qq
> > en4:
> > [ sched: FQ_CODEL qlength: 0/128 ]
> > [ pkts: 100 bytes: 28920 dropped pkts: 1 bytes: 342 ]
> > =====================================================
> > [ pri: CTL (0) srv_cl: 0x480190 quantum: 600 drr_max: 8 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 91 bytes: 27706 ]
> > [ budget: 0 target qdelay: 5.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: VO (1) srv_cl: 0x400180 quantum: 600 drr_max: 8 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 0 bytes: 0 ]
> > [ budget: 0 target qdelay: 5.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: VI (2) srv_cl: 0x380100 quantum: 3000 drr_max: 6 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 0 bytes: 0 ]
> > [ budget: 0 target qdelay: 5.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: RV (3) srv_cl: 0x300110 quantum: 3000 drr_max: 6 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 0 bytes: 0 ]
> > [ budget: 0 target qdelay: 5.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: AV (4) srv_cl: 0x280120 quantum: 3000 drr_max: 6 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 0 bytes: 0 ]
> > [ budget: 0 target qdelay: 5.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: OAM (5) srv_cl: 0x200020 quantum: 1500 drr_max: 4 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 0 bytes: 0 ]
> > [ budget: 0 target qdelay: 5.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: RD (6) srv_cl: 0x180010 quantum: 1500 drr_max: 4 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 0 bytes: 0 ]
> > [ budget: 0 target qdelay: 5.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: BE (7) srv_cl: 0x0 quantum: 1500 drr_max: 4 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 9 bytes: 1214 ]
> > [ budget: 0 target qdelay: 5.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: BK (8) srv_cl: 0x100080 quantum: 1500 drr_max: 2 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 0 bytes: 0 ]
> > [ budget: 0 target qdelay: 5.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: BK_SYS (9) srv_cl: 0x80090 quantum: 1500 drr_max: 2 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 0 bytes: 0 ]
> > [ budget: 0 target qdelay: 5.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > macbook:~ user$
> >
> >
> > and on wifi (en0)
> > macbook:~ user $ netstat -I en0 -qq
> > en0:
> > [ sched: FQ_CODEL qlength: 0/128 ]
> > [ pkts: 0 bytes: 0 dropped pkts: 480 bytes: 77809 ]
> > =====================================================
> > [ pri: VO (1) srv_cl: 0x400180 quantum: 600 drr_max: 8 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 72537 bytes: 7015758 ]
> > [ budget: 0 target qdelay: 10.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: VI (2) srv_cl: 0x380100 quantum: 3000 drr_max: 6 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 1139670 bytes: 80872250 ]
> > [ budget: 0 target qdelay: 10.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: BE (7) srv_cl: 0x0 quantum: 1500 drr_max: 4 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 6737285 bytes: 1608200668 ]
> > [ budget: 0 target qdelay: 10.00 msec update interval:100.00 msec ]
> > [ flow control: 1 feedback: 1 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > =====================================================
> > [ pri: BK (8) srv_cl: 0x100080 quantum: 1500 drr_max: 2 ]
> > [ queued pkts: 0 bytes: 0 ]
> > [ dequeued pkts: 1396402 bytes: 382861004 ]
> > [ budget: 0 target qdelay: 10.00 msec update interval:100.00 msec ]
> > [ flow control: 0 feedback: 0 stalls: 0 failed: 0 ]
> > [ drop overflow: 0 early: 0 memfail: 0 duprexmt:0 ]
> > [ flows total: 0 new: 0 old: 0 ]
> > [ throttle on: 0 off: 0 drop: 0 ]
> > macbook:~ user $
> >
> >
> >
> >
> >
> >
>
>
> --
>
> 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
next prev parent reply other threads:[~2018-09-08 15:53 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-08 15:12 Sebastian Moeller
2018-09-08 15:24 ` Dave Taht
2018-09-08 15:35 ` Sebastian Moeller
2018-09-08 15:54 ` Dave Taht [this message]
2018-09-08 21:17 ` Pete Heist
2018-09-08 21:58 ` Dave Taht
2018-09-09 18:49 ` Toke Høiland-Jørgensen
2018-09-09 18:51 ` Jonathan Morton
2018-09-09 20:38 ` 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/bloat.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAA93jw5kVkJUF3y55usteZ9Yzmyr6qXqJC+JhJqoLViH9FJudQ@mail.gmail.com \
--to=dave.taht@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=moeller0@gmx.de \
/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