diff options
author | Eric Dumazet <edumazet@google.com> | 2013-06-28 07:40:57 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-07-01 18:07:15 -0700 |
commit | aec0a40a6f78843c0ce73f7398230ee5184f896d (patch) | |
tree | b9a68c7c98b2d036ba7396c55f717d17c50f12a4 /kernel/workqueue_internal.h | |
parent | d0b5e516298fba30774e2df22cfbd00ecb09c298 (diff) | |
download | op-kernel-dev-aec0a40a6f78843c0ce73f7398230ee5184f896d.zip op-kernel-dev-aec0a40a6f78843c0ce73f7398230ee5184f896d.tar.gz |
netem: use rb tree to implement the time queue
Following typical setup to implement a ~100 ms RTT and big
amount of reorders has very poor performance because netem
implements the time queue using a linked list.
-----------------------------------------------------------
ETH=eth0
IFB=ifb0
modprobe ifb
ip link set dev $IFB up
tc qdisc add dev $ETH ingress 2>/dev/null
tc filter add dev $ETH parent ffff: \
protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress \
redirect dev $IFB
ethtool -K $ETH gro off tso off gso off
tc qdisc add dev $IFB root netem delay 50ms 10ms limit 100000
tc qd add dev $ETH root netem delay 50ms limit 100000
---------------------------------------------------------
Switch netem time queue to a rb tree, so this kind of setup can work at
high speed.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'kernel/workqueue_internal.h')
0 files changed, 0 insertions, 0 deletions