[Cake] improving inbound shaping
dave.taht at gmail.com
Fri Mar 3 01:54:23 EST 2017
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:
(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:
Author: Daniel Borkmann <daniel at 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.
Let's go make home routers and wifi faster! With better software!
More information about the Cake