From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 96EFA3BA8E for ; Thu, 23 Nov 2017 16:44:02 -0500 (EST) Received: from hms-beagle2.lan ([80.135.78.186]) by mail.gmx.com (mrgmx001 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MarNa-1ebB8M3jRa-00KOlm; Thu, 23 Nov 2017 22:44:01 +0100 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) From: Sebastian Moeller In-Reply-To: Date: Thu, 23 Nov 2017 22:43:45 +0100 Cc: Cake List Content-Transfer-Encoding: quoted-printable Message-Id: <0AE259AC-DB97-42CE-9E0D-33FBF11159AD@gmx.de> References: <1511309382-24060-1-git-send-email-dave.taht@gmail.com> To: =?utf-8?Q?Dave_T=C3=A4ht?= X-Mailer: Apple Mail (2.3273) X-Provags-ID: V03:K0:oeGwXELp9TDGeZFGGspZCtJlWJB3hs17aK+BN08wsEe2vpdbOPB 7Hnp3TsEsrksnU1pvPoNqvZkYQHmklAJZEASxvrYnURUm+6kNGA3TbK4iIvZeDiaWgGiRjB KCO1eE1NMw8ryIb+XkLp91qxbNRAOBt65L1r4C6Vlh4heLJxE1i2o17IAiwGCx8JxCK5alE ZHzTSszTUvId0Y9vHOPiw== X-UI-Out-Filterresults: notjunk:1;V01:K0:hX9NltAvjLQ=:tS4ifwYWrp0fJRHPOj2Aer wf0/a0M5juMy4H6waKO+G3bFvfz5xIk10gkSyWRWDouYhqBeqCRe6AqSPb8roYcK4usdeWONe fa40XTiPgbakNnwMjQv0xuFz8zww3DWi/EDccPCPP9t9CKDwkxHDDIfeuGkbMw1Vox6I+v6O7 cZ/efZWDb6q5Mqq0Us9ENcZtBzZtZ8IV4xnueyBmL8Ohg2N27iCD5DVUq3UY/waZLREQFh8kI O1e3UB+2TH844btdZ49kKigt9aXHSCiTSjs2U3CWfy9O8FvFka0OJiP28oi2D2A//jI9c4zdz g+WSI3SbPYlzF+PVRuvDxBCWrj80Lv5nbdidp0sogKLcVT3RVgjknW/M1KbcQyshOinh9es23 FX7yE6lDVHNhwQ31iP1p+hJ9m2JgRA2r97d0tZCLAWOHDw1ZonM0yfZdW/l3kl+6uUngzm5x9 KWLEdrcsurQb1MTNVr8YX/qvGtA8yBfJZZhwltP/pSFrMN/oDX44nqII9eK1jq/MdINKqIyHP 7Y/HdL3rYKGkCtT6r9nQZ2UpKfgv/qKmGCAXFb19NRDCbbcN74K8QNtd/wmyrT443bhmqPwYu dw7cYUp7tkIolAggooE+eeIBXlkyBKmn5tFxm55ff97vr572J1YttFzyCBtMop9lPnXk62ZYQ CN3gc5XvcGVTROnKwVOWC0N2BXa7xyJ0KUVmUZR32f3WF1Ds1GCKnkEoEjmmY5DQd7JYszhRZ isErU/zMfDvtHPVwJdGB+svIAlxbOmttXhF8tMV15I4oJX5hpx8W7PNCN7MOifCnyHbQMc6Ht jUyESdZgw8qQ/IKRW7A817yGCvX8lwi7E0oo4sfXjy+p74L++rv+3U8kZYDslKd+g1IkQMM Subject: Re: [Cake] [PATCH 0/3] Add Common Applications Kept Enhanced (sch_cake) qdisc X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Nov 2017 21:44:03 -0000 Hi Dave, So it seems that 9789742cfc596d48583ba4cdbc8f38d026121fa6 from the = beginning of this year stil worked okay (this is also the version that = is currently in lede and also seems to work for ar71xx). moeller@work-horse:~/CODE/sch_cake$ git checkout = 9789742cfc596d48583ba4cdbc8f38d026121fa6 moeller@work-horse:~/CODE/sch_cake$ sudo ../iproute2-cake-next/tc/tc = qdisc delete root dev eth0 ; sudo ../iproute2-cake-next/tc/tc qdisc add = root dev eth0 cake ethernet ; ../iproute2-cake-next/tc/tc -s qdisc show = dev eth0 sudo: unable to resolve host work-horse RTNETLINK answers: No such file or directory sudo: unable to resolve host work-horse qdisc cake 801b: root refcnt 6 unlimited diffserv3 triple-isolate rtt = 100.0ms noatm overhead 38 via-ethernet total_overhead 38 hard_header_len = 14 mpu 84=20 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)=20 backlog 0b 0p requeues 0=20 memory used: 0b of 15140Kb capacity estimate: 0bit Bulk Best Effort Voice thresh 0bit 0bit 0bit target 5.0ms 5.0ms 5.0ms interval 100.0ms 100.0ms 10.0ms pk_delay 0us 0us 0us av_delay 0us 0us 0us sp_delay 0us 0us 0us pkts 0 0 0 bytes 0 0 0 way_inds 0 0 0 way_miss 0 0 0 way_cols 0 0 0 drops 0 0 0 marks 0 0 0 sp_flows 0 0 0 bk_flows 0 0 0 un_flows 0 0 0 max_len 0 0 0 moeller@work-horse:~/CODE/sch_cake$ sudo ../iproute2-cake-next/tc/tc = qdisc delete root dev eth0 ; sudo ../iproute2-cake-next/tc/tc qdisc add = root dev eth0 cake overhead 11 ; ../iproute2-cake-next/tc/tc -s qdisc = show dev eth0 sudo: unable to resolve host work-horse sudo: unable to resolve host work-horse qdisc cake 801c: root refcnt 6 unlimited diffserv3 triple-isolate rtt = 100.0ms noatm overhead 11 via-ethernet total_overhead 11 hard_header_len = 14=20 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)=20 backlog 0b 0p requeues 0=20 memory used: 0b of 15140Kb capacity estimate: 0bit Bulk Best Effort Voice thresh 0bit 0bit 0bit target 5.0ms 5.0ms 5.0ms interval 100.0ms 100.0ms 10.0ms pk_delay 0us 0us 0us av_delay 0us 0us 0us sp_delay 0us 0us 0us pkts 0 0 0 bytes 0 0 0 way_inds 0 0 0 way_miss 0 0 0 way_cols 0 0 0 drops 0 0 0 marks 0 0 0 sp_flows 0 0 0 bk_flows 0 0 0 un_flows 0 0 0 max_len 0 0 0 Hum-ho, off to try my first git bisect session, I guess. Best Regards > On Nov 22, 2017, at 19:03, Dave Taht wrote: >=20 > at what commit it worked properly? >=20 > On Wed, Nov 22, 2017 at 3:02 AM, Sebastian Moeller = wrote: >> Hi All, >>=20 >> Tl;dr: Automatic accounting of the kernel added dev->hard_header_len = seems currently broken at least in the cobalt branch... >>=20 >>=20 >> as far as I can tell overhead accounting is still busted: >>=20 >>=20 >> user@work-horse:~/CODE/sch_cake$ sudo ../tc-adv/tc/tc qdisc delete = dev eth0 root; sudo ../tc-adv/tc/tc qdisc replace dev eth0 root cake raw = overhead 5; ../tc-adv/tc/tc -s qdisc show dev eth0 >> sudo: unable to resolve host work-horse >> sudo: unable to resolve host work-horse >> qdisc cake 8014: root refcnt 6 unlimited diffserv3 triple-isolate rtt = 100.0ms noatm overhead 19 via-ethernet total_overhead 19 hard_header_len = 14 >> Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) >> backlog 0b 0p requeues 0 >> memory used: 0b of 15140Kb >> capacity estimate: 0bit >> Bulk Best Effort Voice >> thresh 0bit 0bit 0bit >> target 5.0ms 5.0ms 5.0ms >> interval 100.0ms 100.0ms 10.0ms >> pk_delay 0us 0us 0us >> av_delay 0us 0us 0us >> sp_delay 0us 0us 0us >> pkts 0 0 0 >> bytes 0 0 0 >> way_inds 0 0 0 >> way_miss 0 0 0 >> way_cols 0 0 0 >> drops 0 0 0 >> marks 0 0 0 >> ack_drop 0 0 0 >> sp_flows 0 0 0 >> bk_flows 0 0 0 >> un_flows 0 0 0 >> max_len 0 0 0 >>=20 >> user@work-horse:~/CODE/sch_cake$ sudo ../tc-adv/tc/tc qdisc delete = dev eth0 root; sudo ../tc-adv/tc/tc qdisc replace dev eth0 root cake = overhead 5; ../tc-adv/tc/tc -s qdisc show dev eth0 >> sudo: unable to resolve host work-horse >> sudo: unable to resolve host work-horse >> qdisc cake 8015: root refcnt 6 unlimited diffserv3 triple-isolate rtt = 100.0ms raw total_overhead 14 hard_header_len 14 >> Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) >> backlog 0b 0p requeues 0 >> memory used: 0b of 15140Kb >> capacity estimate: 0bit >> Bulk Best Effort Voice >> thresh 0bit 0bit 0bit >> target 5.0ms 5.0ms 5.0ms >> interval 100.0ms 100.0ms 10.0ms >> pk_delay 0us 0us 0us >> av_delay 0us 0us 0us >> sp_delay 0us 0us 0us >> pkts 0 0 0 >> bytes 0 0 0 >> way_inds 0 0 0 >> way_miss 0 0 0 >> way_cols 0 0 0 >> drops 0 0 0 >> marks 0 0 0 >> ack_drop 0 0 0 >> sp_flows 0 0 0 >> bk_flows 0 0 0 >> un_flows 0 0 0 >> max_len 0 0 0 >>=20 >> user@work-horse:~/CODE/sch_cake$ >>=20 >>=20 >> The first seems okay, but the second should not have reported "raw" = but rather total_overhead 5 hard_header_len 14 if I understand the = intention of the overhead keyword correctly. This also affects the = keywords like conservative: >>=20 >> user@work-horse:~/CODE/sch_cake$ sudo ../tc-adv/tc/tc qdisc delete = dev eth0 root; sudo ../tc-adv/tc/tc qdisc replace dev eth0 root cake = conservative; ../tc-adv/tc/tc -s qdisc show dev eth0 >> sudo: unable to resolve host work-horse >> sudo: unable to resolve host work-horse >> qdisc cake 8019: root refcnt 6 unlimited diffserv3 triple-isolate rtt = 100.0ms atm overhead 14 via-ethernet total_overhead 14 hard_header_len = 14 >> Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) >> backlog 0b 0p requeues 0 >> memory used: 0b of 15140Kb >> capacity estimate: 0bit >> Bulk Best Effort Voice >> thresh 0bit 0bit 0bit >> target 5.0ms 5.0ms 5.0ms >> interval 100.0ms 100.0ms 10.0ms >> pk_delay 0us 0us 0us >> av_delay 0us 0us 0us >> sp_delay 0us 0us 0us >> pkts 0 0 0 >> bytes 0 0 0 >> way_inds 0 0 0 >> way_miss 0 0 0 >> way_cols 0 0 0 >> drops 0 0 0 >> marks 0 0 0 >> ack_drop 0 0 0 >> sp_flows 0 0 0 >> bk_flows 0 0 0 >> un_flows 0 0 0 >> max_len 0 0 0 >>=20 >> user@work-horse:~/CODE/sch_cake$ sudo ../tc-adv/tc/tc qdisc delete = dev eth0 root; sudo ../tc-adv/tc/tc qdisc replace dev eth0 root cake raw = conservative; ../tc-adv/tc/tc -s qdisc show dev eth0 >> sudo: unable to resolve host work-horse >> sudo: unable to resolve host work-horse >> qdisc cake 801a: root refcnt 6 unlimited diffserv3 triple-isolate rtt = 100.0ms atm overhead 62 via-ethernet total_overhead 62 hard_header_len = 14 >> Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) >> backlog 0b 0p requeues 0 >> memory used: 0b of 15140Kb >> capacity estimate: 0bit >> Bulk Best Effort Voice >> thresh 0bit 0bit 0bit >> target 5.0ms 5.0ms 5.0ms >> interval 100.0ms 100.0ms 10.0ms >> pk_delay 0us 0us 0us >> av_delay 0us 0us 0us >> sp_delay 0us 0us 0us >> pkts 0 0 0 >> bytes 0 0 0 >> way_inds 0 0 0 >> way_miss 0 0 0 >> way_cols 0 0 0 >> drops 0 0 0 >> marks 0 0 0 >> ack_drop 0 0 0 >> sp_flows 0 0 0 >> bk_flows 0 0 0 >> un_flows 0 0 0 >> max_len 0 0 0 >>=20 >> user@work-horse:~/CODE/sch_cake$ >>=20 >>=20 >> So in other words currently the automatic accounting for the kernel = added hard_header_len seems broken as the raw keyword disables that = functionality. I will try to look deeper into that, but I guess with my = limited C skills this might do more harm than good... >>=20 >> Best Regards >> Sebastian >>=20 >>=20 >>> On Nov 22, 2017, at 01:09, Dave Taht wrote: >>>=20 >>> sch_cake is intended to squeeze the most bandwidth and lowest = latency out >>> of even the slowest ISP links and routers, while presenting an API = simple >>> enough that even an ISP can configure it. >>>=20 >>> Example of use on an ISP uplink: >>>=20 >>> tc qdisc add dev eth0 cake bandwidth 20Mbit nat docsis ack-filter >>>=20 >>> Cake can also be used in unlimited mode to drive packets at the = speed >>> of the underlying link. >>>=20 >>> Cake is filled with: >>>=20 >>> * A hybrid Codel/Blue AQM algorithm, =E2=80=9CCobalt=E2=80=9D, tied = to an FQ_Codel >>> derived Flow Queuing system, which autoconfigures based on the = bandwidth. >>> * A unique "triple-isolate" mode (the default) which balances = per-flow >>> and per-host flow FQ even through NAT. >>> * An integral deficit based shaper with extensive dsl and docsis = support >>> that can also be used in unlimited mode. >>> * 8 way set associative queuing to reduce flow collisions to a = minimum. >>> * A reasonable interpretation of various diffserv latency/loss = tradeoffs. >>> * Support for washing diffserv for entering and exiting traffic. >>> * Perfect support for interacting with Docsis 3.0 shapers. >>> * Extensive support for DSL framing types. >>> * (New) Support for ack filtering. >>> - 20 % better throughput at a 16x1 down/up ratio on the rrul test. >>> * Extensive statistics for measuring loss, ecn markings, latency = variation. >>>=20 >>> There are some features still considered experimental, notably the >>> ingress_autorate bandwidth estimator and cobalt itself. >>>=20 >>> Various versions shipping have been available as an out of tree = build for >>> kernel versions going back to 3.10, as the embedded router world has = been >>> running a few years behind mainline Linux. A stable version has been >>> generally available on lede-17.01 and later. >>>=20 >>> sch_cake replaces a combination of iptables, tc filter, htb and = fq_codel in >>> the sqm-scripts, with sane defaults and vastly easier configuration. >>>=20 >>> Cake's principal author is Jonathan Morton, with contributions from >>> Kevin Darbyshire-Bryant, Toke H=C3=B8iland-J=C3=B8rgensen, Sebastian = Moeller, >>> Ryan Mounce, Dean Scarff, Guido Sarducci, Nils Andreas Svee, Dave = T=C3=A4ht, and >>> Loganaden Velvindron. >>>=20 >>> Dave Taht (3): >>> pkt_sched.h: add support for sch_cake API >>> Add Common Applications Kept Enhanced (sch_cake) qdisc >>> Add support for building the new cake qdisc >>>=20 >>> include/net/cobalt.h | 152 +++ >>> include/uapi/linux/pkt_sched.h | 58 + >>> net/sched/Kconfig | 11 + >>> net/sched/Makefile | 1 + >>> net/sched/sch_cake.c | 2551 = ++++++++++++++++++++++++++++++++++++++++ >>> 5 files changed, 2773 insertions(+) >>> create mode 100644 include/net/cobalt.h >>> create mode 100644 net/sched/sch_cake.c >>>=20 >>> -- >>> 2.7.4 >>>=20 >>> _______________________________________________ >>> Cake mailing list >>> Cake@lists.bufferbloat.net >>> https://lists.bufferbloat.net/listinfo/cake >>=20 >=20 >=20 >=20 > --=20 >=20 > Dave T=C3=A4ht > CEO, TekLibre, LLC > http://www.teklibre.com > Tel: 1-669-226-2619