[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 03 Mar 2011 10:35:11 +0100
From: Eric Dumazet <eric.dumazet@...il.com>
To: Patrick McHardy <kaber@...sh.net>
Cc: Stephen Hemminger <shemminger@...tta.com>,
Fabio Checconi <fchecconi@...il.com>,
David Miller <davem@...emloft.net>,
Luigi Rizzo <rizzo@....unipi.it>, netdev@...r.kernel.org
Subject: Re: [PATCH] sched: QFQ - quick fair queue scheduler (v2)
Le mercredi 02 mars 2011 à 19:16 +0100, Patrick McHardy a écrit :
> Am 02.03.2011 18:31, schrieb Eric Dumazet:
> > Le mercredi 02 mars 2011 à 17:18 +0100, Eric Dumazet a écrit :
> >> Le mercredi 02 mars 2011 à 08:11 -0800, Stephen Hemminger a écrit :
> >>
> >>> I put the iproute2 code into the repository in the experimental branch.
> >>>
> >>
> >> Thanks
> >>
> >> It seems as soon as packets are dropped, qdisc is frozen (no more
> >> packets dequeued)
> >>
> >> Hmm...
> >>
> >
> > It seems class deletes are buggy.
> >
> > After one "tc class del dev $ETH classid 11:1 ..."
> >
> > a "tc -s -d qdisc show dev $ETH" triggers an Oops
>
> What classes and filters did you have before issuing that command?
(Fabio found the origin of the problem in qfq_destroy_class())
Here is the script I wrote to use QFQ on dummy0 device
(I then use a normal udpflood workload to stress the thing)
More or less copied from other stuff I had, so its probably very
stupid ;)
# cat egress_dummy0.sh
ETH=dummy0
RATE="rate 40Mbit"
PRIVNETS="172.16.0.0/12 192.168.0.0/16 10.0.0.0/8"
ALLOT="allot 20000"
ethtool -K $ETH tso off
tc qdisc del dev $ETH root 2>/dev/null
tc qdisc add dev $ETH root handle 1: cbq avpkt 1000 rate 1000Mbit \
bandwidth 1000Mbit
tc class add dev $ETH parent 1: classid 1:1 \
est 1sec 8sec cbq allot 10000 mpu 64 \
rate 1000Mbit prio 1 avpkt 1500 bounded
# output to private nets : 40 Mbit limit
tc class add dev $ETH parent 1:1 classid 1:11 \
est 1sec 8sec cbq $ALLOT mpu 64 \
$RATE prio 2 avpkt 1400 bounded
tc qdisc add dev $ETH parent 1:11 handle 11: \
est 1sec 8sec qfq
tc filter add dev $ETH protocol ip parent 11: handle 3 \
flow hash keys rxhash divisor 16
tc class add dev $ETH classid 11:1 est 0.5sec 2sec qfq weight 100 maxpkt 1100
tc class add dev $ETH classid 11:2 est 0.5sec 2sec qfq weight 200 maxpkt 1200
tc class add dev $ETH classid 11:3 est 0.5sec 2sec qfq weight 300 maxpkt 1300
tc class add dev $ETH classid 11:4 est 0.5sec 2sec qfq weight 400 maxpkt 1400
tc class add dev $ETH classid 11:5 est 0.5sec 2sec qfq weight 500 maxpkt 1500
tc class add dev $ETH classid 11:6 est 0.5sec 2sec qfq weight 600 maxpkt 1600
tc class add dev $ETH classid 11:7 est 0.5sec 2sec qfq weight 700 maxpkt 1700
tc class add dev $ETH classid 11:8 est 0.5sec 2sec qfq weight 800 maxpkt 1800
tc class add dev $ETH classid 11:9 est 0.5sec 2sec qfq weight 900 maxpkt 1900
tc class add dev $ETH classid 11:a est 0.5sec 2sec qfq weight 1000 maxpkt 2000
tc class add dev $ETH classid 11:b est 0.5sec 2sec qfq weight 1100 maxpkt 2048
tc class add dev $ETH classid 11:c est 0.5sec 2sec qfq weight 1200 maxpkt 2048
tc class add dev $ETH classid 11:d est 0.5sec 2sec qfq weight 1300 maxpkt 2048
tc class add dev $ETH classid 11:e est 0.5sec 2sec qfq weight 1400 maxpkt 2048
tc class add dev $ETH classid 11:f est 0.5sec 2sec qfq weight 1500 maxpkt 2048
tc class add dev $ETH classid 11:10 est 0.5sec 2sec qfq weight 1600 maxpkt 2048
for privnet in $PRIVNETS
do
tc filter add dev $ETH parent 1: protocol ip prio 100 u32 \
match ip dst $privnet flowid 1:11
done
tc filter add dev $ETH parent 1: protocol ip prio 100 u32 \
match ip protocol 0 0x00 flowid 1:1
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists