* [Cake] improving inbound shaping
@ 2017-03-03 6:54 Dave Taht
2017-03-03 9:22 ` Sebastian Moeller
0 siblings, 1 reply; 3+ messages in thread
From: Dave Taht @ 2017-03-03 6:54 UTC (permalink / raw)
To: Cake List
As that's the highest cpu user there is, (and the biggest problem I
have, on comcast, there's 2 sec of latency at 100mbit without shaping:
http://www.taht.net/~d/comcast2/asmiserabledlasever.png
(more flent data there).
It's always been a daydream to somehow bypass the existing tc_mirred
facility we use and be able to express:
tc qdisc add dev eth0 ingress cake bandwidth 990mbit
and have that "just work". My hope would be that that would halve
the packet copies needed (don't know if that's the case in the first place)...
When I last looked at it (2+ years ago), that portion of linux was a
hairball that extended back to the late 90s, and I gave up.
There were a few commits there recently - adding hardware offload
support for the flower classifier and this one:
commit d2788d34885d4ce5ba17a8996fd95d28942e574e
Author: Daniel Borkmann <daniel@iogearbox.net>
Date: Sat May 9 22:51:32 2015 +0200
net: sched: further simplify handle_ing
Ingress qdisc has no other purpose than calling into tc_classify()
that executes attached classifier(s) and action(s).
It has a 1:1 relationship to dev->ingress_queue. After having commit
087c1a601ad7 ("net: sched: run ingress qdisc without locks") removed
the central ingress lock, one major contention point is gone.
The extra indirection layers however, are not necessary for calling
into ingress qdisc. pktgen calling locally into netif_receive_skb()
with a dummy u32, single CPU result on a Supermicro X10SLM-F, Xeon
E3-1240: before ~21,1 Mpps, after patch ~22,9 Mpps.
--
Dave Täht
Let's go make home routers and wifi faster! With better software!
http://blog.cerowrt.org
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Cake] improving inbound shaping
2017-03-03 6:54 [Cake] improving inbound shaping Dave Taht
@ 2017-03-03 9:22 ` Sebastian Moeller
2017-03-03 14:23 ` Dave Taht
0 siblings, 1 reply; 3+ messages in thread
From: Sebastian Moeller @ 2017-03-03 9:22 UTC (permalink / raw)
To: cake, Dave Taht
Hi Dave,
Last time I tested this I came to the conclusion, that going via ifb and mirred cost something like 5% shaper sqm performance on ingress. While not nothing I am not sure this as big a performance issue as you seem to argue.
Your proposal would improve usability quite a lot though if we could avoid the whole ifb-dance...
To assess the cost of the mirred ifb ingress, I simply instantiated the shaper for internet download not on ingress of the wan interface, but on egress of the LAN interface connecting the sole testing host, so I believe the only difference in work for the system should be the ifb/mirred processing.
On March 3, 2017 7:54:23 AM GMT+01:00, Dave Taht <dave.taht@gmail.com> wrote:
>As that's the highest cpu user there is, (and the biggest problem I
>have, on comcast, there's 2 sec of latency at 100mbit without shaping:
>
> http://www.taht.net/~d/comcast2/asmiserabledlasever.png
>(more flent data there).
>
>It's always been a daydream to somehow bypass the existing tc_mirred
>facility we use and be able to express:
>
>tc qdisc add dev eth0 ingress cake bandwidth 990mbit
>
>and have that "just work". My hope would be that that would halve
>the packet copies needed (don't know if that's the case in the first
>place)...
>
>When I last looked at it (2+ years ago), that portion of linux was a
>hairball that extended back to the late 90s, and I gave up.
>
>There were a few commits there recently - adding hardware offload
>support for the flower classifier and this one:
>
>commit d2788d34885d4ce5ba17a8996fd95d28942e574e
>Author: Daniel Borkmann <daniel@iogearbox.net>
>Date: Sat May 9 22:51:32 2015 +0200
>
> net: sched: further simplify handle_ing
>
> Ingress qdisc has no other purpose than calling into tc_classify()
> that executes attached classifier(s) and action(s).
>
> It has a 1:1 relationship to dev->ingress_queue. After having commit
> 087c1a601ad7 ("net: sched: run ingress qdisc without locks") removed
> the central ingress lock, one major contention point is gone.
>
> The extra indirection layers however, are not necessary for calling
> into ingress qdisc. pktgen calling locally into netif_receive_skb()
> with a dummy u32, single CPU result on a Supermicro X10SLM-F, Xeon
> E3-1240: before ~21,1 Mpps, after patch ~22,9 Mpps.
>
>
>
>
>--
>Dave Täht
>Let's go make home routers and wifi faster! With better software!
>http://blog.cerowrt.org
>_______________________________________________
>Cake mailing list
>Cake@lists.bufferbloat.net
>https://lists.bufferbloat.net/listinfo/cake
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Cake] improving inbound shaping
2017-03-03 9:22 ` Sebastian Moeller
@ 2017-03-03 14:23 ` Dave Taht
0 siblings, 0 replies; 3+ messages in thread
From: Dave Taht @ 2017-03-03 14:23 UTC (permalink / raw)
To: Sebastian Moeller; +Cc: Cake List
On Fri, Mar 3, 2017 at 1:22 AM, Sebastian Moeller <moeller0@gmx.de> wrote:
> Hi Dave,
>
>
> Last time I tested this I came to the conclusion, that going via ifb and mirred cost something like 5% shaper sqm performance on ingress. While not nothing I am not sure this as big a performance issue as you seem to argue.
Didn't say double the performance, I said "halve the packet copies".
Amdahl's law applies. 5% is a foothold.
> Your proposal would improve usability quite a lot though if we could avoid the whole ifb-dance...
>
> To assess the cost of the mirred ifb ingress, I simply instantiated the shaper for internet download not on ingress of the wan interface, but on egress of the LAN interface connecting the sole testing host, so I believe the only difference in work for the system should be the ifb/mirred processing.
Well, I plan to fiddle with a new tp-link AC2600 at these higher
speeds. That's a dual core arm, and my initial tests with it were
quite nice... well, I couldn't crash it, anyway.
There's a mcast bug easily fixed in the ethernet driver, the wifi is
an ath10k alike that doesn't currently have the make-wifi-fast fixes
and I can profile, a bit on it.
They're 128 bucks on amazon.
https://www.amazon.com/TP-Link-Wireless-Technology-Archer-C2600/dp/B010UR8AM2
>
> On March 3, 2017 7:54:23 AM GMT+01:00, Dave Taht <dave.taht@gmail.com> wrote:
>>As that's the highest cpu user there is, (and the biggest problem I
>>have, on comcast, there's 2 sec of latency at 100mbit without shaping:
>>
>> http://www.taht.net/~d/comcast2/asmiserabledlasever.png
>>(more flent data there).
>>
>>It's always been a daydream to somehow bypass the existing tc_mirred
>>facility we use and be able to express:
>>
>>tc qdisc add dev eth0 ingress cake bandwidth 990mbit
>>
>>and have that "just work". My hope would be that that would halve
>>the packet copies needed (don't know if that's the case in the first
>>place)...
>>
>>When I last looked at it (2+ years ago), that portion of linux was a
>>hairball that extended back to the late 90s, and I gave up.
>>
>>There were a few commits there recently - adding hardware offload
>>support for the flower classifier and this one:
>>
>>commit d2788d34885d4ce5ba17a8996fd95d28942e574e
>>Author: Daniel Borkmann <daniel@iogearbox.net>
>>Date: Sat May 9 22:51:32 2015 +0200
>>
>> net: sched: further simplify handle_ing
>>
>> Ingress qdisc has no other purpose than calling into tc_classify()
>> that executes attached classifier(s) and action(s).
>>
>> It has a 1:1 relationship to dev->ingress_queue. After having commit
>> 087c1a601ad7 ("net: sched: run ingress qdisc without locks") removed
>> the central ingress lock, one major contention point is gone.
>>
>> The extra indirection layers however, are not necessary for calling
>> into ingress qdisc. pktgen calling locally into netif_receive_skb()
>> with a dummy u32, single CPU result on a Supermicro X10SLM-F, Xeon
>> E3-1240: before ~21,1 Mpps, after patch ~22,9 Mpps.
>>
>>
>>
>>
>>--
>>Dave Täht
>>Let's go make home routers and wifi faster! With better software!
>>http://blog.cerowrt.org
>>_______________________________________________
>>Cake mailing list
>>Cake@lists.bufferbloat.net
>>https://lists.bufferbloat.net/listinfo/cake
--
Dave Täht
Let's go make home routers and wifi faster! With better software!
http://blog.cerowrt.org
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-03-03 14:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-03 6:54 [Cake] improving inbound shaping Dave Taht
2017-03-03 9:22 ` Sebastian Moeller
2017-03-03 14:23 ` Dave Taht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox